added a unit test for fixed bug 41139: Constructing HSSFWorkbook is failed,threw threw ArrayIndexOutOfBoundsException for creating UnknownRecord

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@613401 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yegor Kozlov 2008-01-19 14:54:06 +00:00
parent 2c46d2a3f7
commit 2d0c2e049d
2 changed files with 29 additions and 74 deletions

View File

@ -990,6 +990,27 @@ extends TestCase {
wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray())); wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
assertTrue("No exceptions while reading saved stream", true); assertTrue("No exceptions while reading saved stream", true);
} }
/**
* Bug 41139: Constructing HSSFWorkbook is failed,threw threw ArrayIndexOutOfBoundsException for creating UnknownRecord
*/
public void test41139() throws Exception {
FileInputStream in = new FileInputStream(new File(cwd, "41139.xls"));
HSSFWorkbook wb = new HSSFWorkbook(in);
in.close();
assertTrue("No Exceptions while reading file", true);
//serialize and read again
ByteArrayOutputStream out = new ByteArrayOutputStream();
wb.write(out);
out.close();
wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
assertTrue("No Exceptions while reading file", true);
}
} }

View File

@ -44,79 +44,13 @@ public class TestUnfixedBugs extends TestCase {
protected String cwd = System.getProperty("HSSF.testdata.path"); protected String cwd = System.getProperty("HSSF.testdata.path");
/* ArrayIndexOutOfBound in BOFRecord */
public void test28772() throws java.io.IOException {
String filename = System.getProperty("HSSF.testdata.path");
filename=filename+"/28772.xls";
FileInputStream in = new FileInputStream(filename);
HSSFWorkbook wb = new HSSFWorkbook(in);
assertTrue("Read book fine!" , true);
}
/**
* Bug 37684: Unhandled Continue Record Error
*
* BUT NOW(Jan07): It triggers bug 41026!!
*
* java.lang.ArrayIndexOutOfBoundsException: 30
at org.apache.poi.hssf.record.aggregates.ValueRecordsAggregate.rowHasCells(ValueRecordsAggregate.java:219)
*/
public void test37684() throws Exception {
FileInputStream in = new FileInputStream(new File(cwd, "37684.xls"));
HSSFWorkbook wb = new HSSFWorkbook(in);
in.close();
HSSFSheet sheet = wb.getSheetAt( 0 ); public void test43493() throws Exception {
assertNotNull(sheet); // Has crazy corrup subrecords on
// a EmbeddedObjectRefSubRecord
assertTrue("No Exceptions while reading file", true); File f = new File(cwd, "43493.xls");
HSSFWorkbook wb = new HSSFWorkbook(
//serialize and read again new FileInputStream(f)
ByteArrayOutputStream out = new ByteArrayOutputStream(); );
wb.write(out); }
out.close();
wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
assertTrue("No Exceptions while reading file", true);
}
/**
* Bug 41139: Constructing HSSFWorkbook is failed,threw threw ArrayIndexOutOfBoundsException for creating UnknownRecord
*
* BUT NOW (Jan07): It throws the following in write!!
* java.lang.RuntimeException: Coding Error: This method should never be called. This ptg should be converted
at org.apache.poi.hssf.record.formula.AreaNPtg.writeBytes(AreaNPtg.java:54)
at org.apache.poi.hssf.record.formula.Ptg.serializePtgStack(Ptg.java:384)
at org.apache.poi.hssf.record.NameRecord.serialize(NameRecord.java:544)
at org.apache.poi.hssf.model.Workbook.serialize(Workbook.java:757)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.getBytes(HSSFWorkbook.java:952)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:898)
*/
public void test41139() throws Exception {
FileInputStream in = new FileInputStream(new File(cwd, "41139.xls"));
HSSFWorkbook wb = new HSSFWorkbook(in);
in.close();
assertTrue("No Exceptions while reading file", true);
//serialize and read again
ByteArrayOutputStream out = new ByteArrayOutputStream();
wb.write(out);
out.close();
wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
assertTrue("No Exceptions while reading file", true);
}
public void test43493() throws Exception {
// Has crazy corrup subrecords on
// a EmbeddedObjectRefSubRecord
File f = new File(cwd, "43493.xls");
HSSFWorkbook wb = new HSSFWorkbook(
new FileInputStream(f)
);
}
} }