Bug 59733: Narrow down testcase some more, after the first shift, removing the first row is sufficient to trigger the problem

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1752996 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2016-07-16 20:52:28 +00:00
parent 73217cecae
commit 9c3ab2d1b3
1 changed files with 9 additions and 10 deletions

View File

@ -76,12 +76,11 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
// when shifted by less than -1 negative amount (try -2) // when shifted by less than -1 negative amount (try -2)
testSheet.shiftRows(3, 3, -2); testSheet.shiftRows(3, 3, -2);
Row newRow = null; Cell newCell = null; // 2) attempt to create a new row IN PLACE of a removed row by a negative shift causes corrupted
// 2) attempt to create a new row IN PLACE of a removed row by a negative shift causes corrupted
// xlsx file with unreadable data in the negative shifted row. // xlsx file with unreadable data in the negative shifted row.
// NOTE it's ok to create any other row. // NOTE it's ok to create any other row.
newRow = testSheet.createRow(3); Row newRow = testSheet.createRow(3);
newCell = newRow.createCell(0); Cell newCell = newRow.createCell(0);
newCell.setCellValue("new Cell in row "+newRow.getRowNum()); newCell.setCellValue("new Cell in row "+newRow.getRowNum());
// 3) once a negative shift has been made any attempt to shift another group of rows // 3) once a negative shift has been made any attempt to shift another group of rows
@ -117,6 +116,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
return; return;
} }
Cell readCell = readRow.getCell(0); Cell readCell = readRow.getCell(0);
//noinspection deprecation
if(readCell.getCellTypeEnum() == CellType.NUMERIC) { if(readCell.getCellTypeEnum() == CellType.NUMERIC) {
assertEquals(expect, Double.toString(readCell.getNumericCellValue())); assertEquals(expect, Double.toString(readCell.getNumericCellValue()));
} else { } else {
@ -369,12 +369,12 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
wb.close(); wb.close();
} }
@Ignore @Ignore("Bug 59733 - shiftRows() causes org.apache.xmlbeans.impl.values.XmlValueDisconnectedException")
@Test @Test
public void bug59733() throws IOException { public void bug59733() throws IOException {
Workbook workbook = new XSSFWorkbook(); Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet(); Sheet sheet = workbook.createSheet();
for (int r=0; r<=3; r++) { for (int r=0; r<4; r++) {
sheet.createRow(r); sheet.createRow(r);
} }
@ -389,12 +389,11 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
at org.apache.xmlbeans.impl.values.XmlObjectBase.check_orphaned(XmlObjectBase.java:1258) at org.apache.xmlbeans.impl.values.XmlObjectBase.check_orphaned(XmlObjectBase.java:1258)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTRowImpl.getR(Unknown Source) at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTRowImpl.getR(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFRow.getRowNum(XSSFRow.java:363) at org.apache.poi.xssf.usermodel.XSSFRow.getRowNum(XSSFRow.java:363)
at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2926)
at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2901)
at org.apache.poi.xssf.usermodel.TestXSSFSheetShiftRows.bug59733(TestXSSFSheetShiftRows.java:393) at org.apache.poi.xssf.usermodel.TestXSSFSheetShiftRows.bug59733(TestXSSFSheetShiftRows.java:393)
*/ */
sheet.shiftRows(3, 3, -3); sheet.removeRow(sheet.getRow(0));
assertEquals(1, sheet.getRow(1).getRowNum());
workbook.close(); workbook.close();
} }
} }