ASF Bugzilla – Attachment 33780 Details for
Bug 59355
[PATCH] XSSFPivotTable::addColumnLabel sets the cell type of a cell outside of the source data area, potentially throwing NPE or causing side effects
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for bug + testcase in TestXSSFPivotTable
patch-59355.txt (text/plain), 4.00 KB, created by
Sherman Ying
on 2016-04-19 21:42:13 UTC
(
hide
)
Description:
Patch for bug + testcase in TestXSSFPivotTable
Filename:
MIME Type:
Creator:
Sherman Ying
Created:
2016-04-19 21:42:13 UTC
Size:
4.00 KB
patch
obsolete
>Index: src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java >=================================================================== >--- src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java (revision 1739932) >+++ src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java (working copy) >@@ -355,7 +355,8 @@ > } > CTDataField dataField = dataFields.addNewDataField(); > dataField.setSubtotal(STDataConsolidateFunction.Enum.forInt(function.getValue())); >- Cell cell = getDataSheet().getRow(pivotArea.getFirstCell().getRow()).getCell(columnIndex); >+ Cell cell = getDataSheet().getRow(pivotArea.getFirstCell().getRow()) >+ .getCell(pivotArea.getFirstCell().getCol() + columnIndex); > cell.setCellType(Cell.CELL_TYPE_STRING); > dataField.setName(valueFieldName); > dataField.setFld(columnIndex); >Index: src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTable.java >=================================================================== >--- src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTable.java (revision 1739932) >+++ src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPivotTable.java (working copy) >@@ -32,6 +32,8 @@ > > public class TestXSSFPivotTable extends TestCase { > private XSSFPivotTable pivotTable; >+ private XSSFPivotTable offsetPivotTable; >+ private Cell offsetOuterCell; > > @Override > public void setUp(){ >@@ -71,6 +73,45 @@ > > AreaReference source = new AreaReference("A1:C2"); > pivotTable = sheet.createPivotTable(source, new CellReference("H5")); >+ >+ XSSFSheet offsetSheet = (XSSFSheet) wb.createSheet(); >+ >+ Row tableRow_1 = offsetSheet.createRow(1); >+ offsetOuterCell = tableRow_1.createCell(1); >+ offsetOuterCell.setCellValue(-1); >+ Cell tableCell_1_1 = tableRow_1.createCell(2); >+ tableCell_1_1.setCellValue("Row #"); >+ Cell tableCell_1_2 = tableRow_1.createCell(3); >+ tableCell_1_2.setCellValue("Exponent"); >+ Cell tableCell_1_3 = tableRow_1.createCell(4); >+ tableCell_1_3.setCellValue("10^Exponent"); >+ >+ Row tableRow_2 = offsetSheet.createRow(2); >+ Cell tableCell_2_1 = tableRow_2.createCell(2); >+ tableCell_2_1.setCellValue(0); >+ Cell tableCell_2_2 = tableRow_2.createCell(3); >+ tableCell_2_2.setCellValue(0); >+ Cell tableCell_2_3 = tableRow_2.createCell(4); >+ tableCell_2_3.setCellValue(1); >+ >+ Row tableRow_3= offsetSheet.createRow(3); >+ Cell tableCell_3_1 = tableRow_3.createCell(2); >+ tableCell_3_1.setCellValue(1); >+ Cell tableCell_3_2 = tableRow_3.createCell(3); >+ tableCell_3_2.setCellValue(1); >+ Cell tableCell_3_3 = tableRow_3.createCell(4); >+ tableCell_3_3.setCellValue(10); >+ >+ Row tableRow_4 = offsetSheet.createRow(4); >+ Cell tableCell_4_1 = tableRow_4.createCell(2); >+ tableCell_4_1.setCellValue(2); >+ Cell tableCell_4_2 = tableRow_4.createCell(3); >+ tableCell_4_2.setCellValue(2); >+ Cell tableCell_4_3 = tableRow_4.createCell(4); >+ tableCell_4_3.setCellValue(100); >+ >+ AreaReference offsetSource = new AreaReference(new CellReference("C2"), new CellReference("E4")); >+ offsetPivotTable = offsetSheet.createPivotTable(offsetSource, new CellReference("C6")); > } > > /** >@@ -268,4 +309,20 @@ > } > fail(); > } >+ >+ /** >+ * Verify that the Pivot Table operates only within the referenced area, even when the >+ * first column of the referenced area is not index 0. >+ */ >+ public void testAddDataColumnWithOffsetData() { >+ offsetPivotTable.addColumnLabel(DataConsolidateFunction.SUM, 1); >+ assertEquals(Cell.CELL_TYPE_NUMERIC, offsetOuterCell.getCellType()); >+ >+ try { >+ offsetPivotTable.addColumnLabel(DataConsolidateFunction.SUM, 0); >+ } catch(NullPointerException e) { >+ fail(); >+ } >+ return; >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 59355
:
33778
|
33779
| 33780