diff -r 906f767ef9b3 -r b40153eb7716 java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java Sun Sep 06 21:46:03 2015 +0200 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java Sun Sep 06 21:48:54 2015 +0200 @@ -61,9 +61,10 @@ BigDecimal minimum = BigDecimal.ZERO; int lastIndex = currentHeader.getColumnCount() - 1; + Object valueObject = null; try { for (Object[] row : currentResultSet) { - Object valueObject = row[lastIndex]; + valueObject = row[lastIndex]; if (valueObject != null) { BigDecimal value = new BigDecimal(valueObject.toString()); maximum = maximum.max(value); @@ -74,8 +75,10 @@ BigDecimal range = maximum.subtract(minimum); for (Object[] row : currentResultSet) { - Object valueObject = row[lastIndex]; - if (valueObject != null) { + valueObject = row[lastIndex]; + if (valueObject == null) { + row[lastIndex] = ""; + } else { BigDecimal value = new BigDecimal(valueObject.toString()); BigDecimal valueFromMinimum = value.subtract(minimum); @@ -87,7 +90,7 @@ } catch (NumberFormatException e) { // https://en.wiktionary.org/wiki/parsable - log.log(Level.SEVERE, "Last column must be number or an object with toString() value parsable to a number."); + log.log(Level.SEVERE, "Last column must be number or an object with toString() value parsable to a number. But was „{0}“", valueObject); // FIXME: throw FormatterException throw e; }