Author: abearez Date: Tue Jan 19 21:33:38 2021 New Revision: 1885700 URL: http://svn.apache.org/viewvc?rev=1885700&view=rev Log: Bug 65016 - Creating a chart throws exception
Added: poi/trunk/test-data/spreadsheet/65016.xlsx Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSource.java poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFChart.java Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSource.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSource.java?rev=1885700&r1=1885699&r2=1885700&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSource.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSource.java Tue Jan 19 21:33:38 2021 @@ -80,7 +80,9 @@ public interface XDDFDataSource<T> { } } if (effectiveNumOfPoints == 0) { - cache.unsetPtCount(); + if (cache.isSetPtCount()) { + cache.unsetPtCount(); + } } else { if (cache.isSetPtCount()) { cache.getPtCount().setVal(numOfPoints); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFChart.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFChart.java?rev=1885700&r1=1885699&r2=1885700&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFChart.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xddf/usermodel/chart/TestXDDFChart.java Tue Jan 19 21:33:38 2021 @@ -23,9 +23,17 @@ import static org.junit.jupiter.api.Asse import org.apache.poi.ooxml.POIXMLFactory; import org.apache.poi.ooxml.POIXMLRelation; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.XSSFTestDataSamples; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.jupiter.api.Test; import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartSpace; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + class TestXDDFChart { @Test void testConstruct() { @@ -48,6 +56,39 @@ class TestXDDFChart { assertEquals("rid2", ctChartSpace.getExternalData().getId()); } + @Test + public void test65016() throws IOException { + try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("65016.xlsx")) { + XSSFSheet splitSheet = wb.getSheet("Splits"); + + XDDFChart chart = newXDDFChart(); + XDDFChartLegend legend = chart.getOrAddLegend(); + legend.setPosition(LegendPosition.BOTTOM); + + // Use a category axis for the bottom axis. + XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM); + XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT); + leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); + + XDDFLineChartData data = (XDDFLineChartData) chart.createData(ChartTypes.LINE, bottomAxis, leftAxis); + + // starting row 1 to include description + XDDFNumericalDataSource<Double> xs = XDDFDataSourcesFactory.fromNumericCellRange(splitSheet, + new CellRangeAddress(2, 100, 0, 0)); + XDDFNumericalDataSource<Double> ys1 = XDDFDataSourcesFactory.fromNumericCellRange(splitSheet, + new CellRangeAddress(2, 100, 1, 1)); + + XDDFLineChartData.Series series = (XDDFLineChartData.Series) data.addSeries(xs, ys1); + assertEquals(series.categoryData.getPointCount(), xs.getPointCount()); + + chart.plot(data); + + try (OutputStream out = new FileOutputStream("/tmp/chart20201220.xlsx")) { + wb.write(out); + } + } + } + private XDDFChart newXDDFChart() { XDDFChart xddfChart = new XDDFChart() { @Override @@ -67,4 +108,4 @@ class TestXDDFChart { }; return xddfChart; } -} \ No newline at end of file +} Added: poi/trunk/test-data/spreadsheet/65016.xlsx URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/65016.xlsx?rev=1885700&view=auto ============================================================================== Binary files poi/trunk/test-data/spreadsheet/65016.xlsx (added) and poi/trunk/test-data/spreadsheet/65016.xlsx Tue Jan 19 21:33:38 2021 differ --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org