You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2021/09/10 06:15:30 UTC
svn commit: r1893212 - in
/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart:
XDDFChartData.java XDDFDataSourcesFactory.java
Author: centic
Date: Fri Sep 10 06:15:30 2021
New Revision: 1893212
URL: http://svn.apache.org/viewvc?rev=1893212&view=rev
Log:
Improve error messages when charting data is not valid
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSourcesFactory.java
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java?rev=1893212&r1=1893211&r2=1893212&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java Fri Sep 10 06:15:30 2021
@@ -166,7 +166,8 @@ public abstract class XDDFChartData {
if (categoryData != null && values != null) {
int numOfPoints = category.getPointCount();
if (numOfPoints != values.getPointCount()) {
- throw new IllegalStateException("Category and values must have the same point count.");
+ throw new IllegalStateException("Category and values must have the same point count, but had " +
+ numOfPoints + " categories and " + values.getPointCount() + " values.");
}
}
this.categoryData = category;
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSourcesFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSourcesFactory.java?rev=1893212&r1=1893211&r2=1893212&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSourcesFactory.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xddf/usermodel/chart/XDDFDataSourcesFactory.java Fri Sep 10 06:15:30 2021
@@ -47,8 +47,8 @@ public class XDDFDataSourcesFactory {
}
if (categoryDS.getNumRef() != null && categoryDS.getNumRef().getNumCache() != null) {
return new XDDFCategoryDataSource() {
- private CTNumData category = (CTNumData) categoryDS.getNumRef().getNumCache().copy();
- private String formatCode = category.isSetFormatCode() ? category.getFormatCode() : null;
+ private final CTNumData category = (CTNumData) categoryDS.getNumRef().getNumCache().copy();
+ private final String formatCode = category.isSetFormatCode() ? category.getFormatCode() : null;
@Override
public boolean isCellRange() {
@@ -72,6 +72,10 @@ public class XDDFDataSourcesFactory {
@Override
public String getPointAt(int index) {
+ if (category.getPtArray().length <= index) {
+ throw new IllegalArgumentException("Cannot access 0-based index " + index +
+ " in point-array with " + category.getPtArray().length + " items");
+ }
return category.getPtArray(index).getV();
}
@@ -80,7 +84,7 @@ public class XDDFDataSourcesFactory {
};
} else if (categoryDS.getStrRef() != null && categoryDS.getStrRef().getStrCache() != null) {
return new XDDFCategoryDataSource() {
- private CTStrData category = (CTStrData) categoryDS.getStrRef().getStrCache().copy();
+ private final CTStrData category = (CTStrData) categoryDS.getStrRef().getStrCache().copy();
@Override
public boolean isCellRange() {
@@ -107,8 +111,8 @@ public class XDDFDataSourcesFactory {
};
} else if (categoryDS.getNumLit() != null) {
return new XDDFCategoryDataSource() {
- private CTNumData category = (CTNumData) categoryDS.getNumLit().copy();
- private String formatCode = category.isSetFormatCode() ? category.getFormatCode() : null;
+ private final CTNumData category = (CTNumData) categoryDS.getNumLit().copy();
+ private final String formatCode = category.isSetFormatCode() ? category.getFormatCode() : null;
@Override
public boolean isCellRange() {
@@ -150,7 +154,7 @@ public class XDDFDataSourcesFactory {
};
} else if (categoryDS.getStrLit() != null) {
return new XDDFCategoryDataSource() {
- private CTStrData category = (CTStrData) categoryDS.getStrLit().copy();
+ private final CTStrData category = (CTStrData) categoryDS.getStrLit().copy();
@Override
public boolean isCellRange() {
@@ -196,7 +200,7 @@ public class XDDFDataSourcesFactory {
}
if (valuesDS.getNumRef() != null && valuesDS.getNumRef().getNumCache() != null) {
return new XDDFNumericalDataSource<Double>() {
- private CTNumData values = (CTNumData) valuesDS.getNumRef().getNumCache().copy();
+ private final CTNumData values = (CTNumData) valuesDS.getNumRef().getNumCache().copy();
private String formatCode = values.isSetFormatCode() ? values.getFormatCode() : null;
@Override
@@ -246,7 +250,7 @@ public class XDDFDataSourcesFactory {
};
} else if (valuesDS.getNumLit() != null) {
return new XDDFNumericalDataSource<Double>() {
- private CTNumData values = (CTNumData) valuesDS.getNumLit().copy();
+ private final CTNumData values = (CTNumData) valuesDS.getNumLit().copy();
private String formatCode = values.isSetFormatCode() ? values.getFormatCode() : null;
@Override
@@ -457,7 +461,7 @@ public class XDDFDataSourcesFactory {
private final XSSFSheet sheet;
private final CellRangeAddress cellRangeAddress;
private final int numOfCells;
- private XSSFFormulaEvaluator evaluator;
+ private final XSSFFormulaEvaluator evaluator;
protected AbstractCellRangeDataSource(XSSFSheet sheet, CellRangeAddress cellRangeAddress) {
this.sheet = sheet;
@@ -530,7 +534,7 @@ public class XDDFDataSourcesFactory {
public Double getPointAt(int index) {
CellValue cellValue = getCellValueAt(index);
if (cellValue != null && cellValue.getCellType() == CellType.NUMERIC) {
- return Double.valueOf(cellValue.getNumberValue());
+ return cellValue.getNumberValue();
} else {
return null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org