# HG changeset patch # User František Kučera # Date 1441568934 -7200 # Node ID b40153eb771677c5ec250f594112b1051e8e4454 # Parent 906f767ef9b319b9876557847d7bd158e95388ad BarChartFormatter: format null as an empty/missing bar + better logging 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; }