bug 60343, return null if index is out of bounds in StylesTable's getStyleAt(idx)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1770848 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ea63780926
commit
52c449c65a
@ -403,9 +403,18 @@ public class StylesTable extends POIXMLDocumentPart {
|
||||
return putFont(font, false);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param idx style index
|
||||
* @return XSSFCellStyle or null if idx is out of bounds for xfs array
|
||||
*/
|
||||
public XSSFCellStyle getStyleAt(int idx) {
|
||||
int styleXfId = 0;
|
||||
|
||||
if (idx < 0 || idx >= xfs.size()) {
|
||||
//BUG-60343
|
||||
return null;
|
||||
}
|
||||
// 0 is the empty default
|
||||
if(xfs.get(idx).getXfId() > 0) {
|
||||
styleXfId = (int) xfs.get(idx).getXfId();
|
||||
|
@ -463,10 +463,8 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
|
||||
// Should have one style
|
||||
assertEquals(1, wb1.getNumCellStyles());
|
||||
wb1.getCellStyleAt((short)0);
|
||||
try {
|
||||
wb1.getCellStyleAt((short)1);
|
||||
fail("Shouldn't be able to get style at 1 that doesn't exist");
|
||||
} catch(IndexOutOfBoundsException e) {}
|
||||
assertNull("Shouldn't be able to get style at 0 that doesn't exist",
|
||||
wb1.getCellStyleAt((short)1));
|
||||
|
||||
// Add another one
|
||||
CellStyle cs = wb1.createCellStyle();
|
||||
@ -476,20 +474,16 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
|
||||
assertEquals(2, wb1.getNumCellStyles());
|
||||
wb1.getCellStyleAt((short)0);
|
||||
wb1.getCellStyleAt((short)1);
|
||||
try {
|
||||
wb1.getCellStyleAt((short)2);
|
||||
fail("Shouldn't be able to get style at 2 that doesn't exist");
|
||||
} catch(IndexOutOfBoundsException e) {}
|
||||
assertNull("Shouldn't be able to get style at 2 that doesn't exist",
|
||||
wb1.getCellStyleAt((short)2));
|
||||
|
||||
// Save and reload
|
||||
XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb1);
|
||||
assertEquals(2, nwb.getNumCellStyles());
|
||||
nwb.getCellStyleAt((short)0);
|
||||
nwb.getCellStyleAt((short)1);
|
||||
try {
|
||||
nwb.getCellStyleAt((short)2);
|
||||
fail("Shouldn't be able to get style at 2 that doesn't exist");
|
||||
} catch(IndexOutOfBoundsException e) {}
|
||||
assertNull("Shouldn't be able to get style at 2 that doesn't exist",
|
||||
nwb.getCellStyleAt((short)2));
|
||||
|
||||
// Now with an existing file
|
||||
XSSFWorkbook wb2 = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
|
||||
@ -497,10 +491,8 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
|
||||
wb2.getCellStyleAt((short)0);
|
||||
wb2.getCellStyleAt((short)1);
|
||||
wb2.getCellStyleAt((short)2);
|
||||
try {
|
||||
wb2.getCellStyleAt((short)3);
|
||||
fail("Shouldn't be able to get style at 3 that doesn't exist");
|
||||
} catch(IndexOutOfBoundsException e) {}
|
||||
assertNull("Shouldn't be able to get style at 3 that doesn't exist",
|
||||
wb2.getCellStyleAt((short)3));
|
||||
|
||||
wb2.close();
|
||||
wb1.close();
|
||||
|
Loading…
Reference in New Issue
Block a user