From 0b8319bdcdcefea87e0cad3e1165c277f09e9a7a Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Thu, 13 Sep 2007 19:11:10 +0000 Subject: fixed re-open of bug #42844. HSSFEventFactory silently skips unknown records that happen to be continued. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@575406 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hssf/eventusermodel/HSSFEventFactory.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/java/org/apache') diff --git a/src/java/org/apache/poi/hssf/eventusermodel/HSSFEventFactory.java b/src/java/org/apache/poi/hssf/eventusermodel/HSSFEventFactory.java index 1cd80d535b..70c989c179 100644 --- a/src/java/org/apache/poi/hssf/eventusermodel/HSSFEventFactory.java +++ b/src/java/org/apache/poi/hssf/eventusermodel/HSSFEventFactory.java @@ -22,15 +22,7 @@ import java.io.InputStream; import java.io.IOException; import org.apache.poi.hssf.eventusermodel.HSSFUserException; -import org.apache.poi.hssf.record.RecordFormatException; -import org.apache.poi.hssf.record.Record; -import org.apache.poi.hssf.record.RecordInputStream; -import org.apache.poi.hssf.record.RecordFactory; -import org.apache.poi.hssf.record.ContinueRecord; -import org.apache.poi.hssf.record.DrawingRecord; -import org.apache.poi.hssf.record.DrawingGroupRecord; -import org.apache.poi.hssf.record.ObjRecord; -import org.apache.poi.hssf.record.TextObjectRecord; +import org.apache.poi.hssf.record.*; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** @@ -151,7 +143,7 @@ public class HSSFEventFactory { in.nextRecord(); sid = in.getSid();; - + // // for some reasons we have to make the workbook to be at least 4096 bytes // but if we have such workbook we fill the end of it with zeros (many zeros) @@ -215,7 +207,11 @@ public class HSSFEventFactory rec = lastRec; } else { - throw new RecordFormatException("Records should handle ContinueRecord internally. Should not see this exception"); + if (rec instanceof UnknownRecord) { + ;//silently skip records we don't know about + } else { + throw new RecordFormatException("Records should handle ContinueRecord internally. Should not see this exception"); + } } } -- cgit v1.2.3