Bug 47246 - RecordFormatException - Leftover 32 bytes in subrecord data
Summary: RecordFormatException - Leftover 32 bytes in subrecord data
Status: RESOLVED WORKSFORME
Alias: None
Product: POI
Classification: Unclassified
Component: HSSF (show other bugs)
Version: 3.5-dev
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-22 10:46 UTC by Jonathan Holloway
Modified: 2013-08-05 09:37 UTC (History)
1 user (show)



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Holloway 2009-05-22 10:46:58 UTC
I get a RecordFormatException, unable to construct record instance when dealing with one particular spreadsheet:

RecordFormatException: 
org.apache.poi.hssf.record.RecordFormatException: Unable to construct record instance
	at org.apache.poi.hssf.record.RecordFactory$ReflectionRecordCreator.create(RecordFactory.java:71)
	at org.apache.poi.hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:269)
	at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:408)
	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:277)
	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:202)
	at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:184)
...
Caused by: org.apache.poi.hssf.record.RecordFormatException: Leftover 32 bytes in subrecord data [15, 00, 12, 00, 14, 00, 02, 00, 11, 00, 00, 00, 00, 00, 00, 7C, FE, 0E, 90, C4, B5, 1D, 0C, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 00, 03, 00, 00, 00, 10, 00, 00, 00, 04, 00, 0E, 00, 07, 00, A4, C1, B5, 1D, 39, 0B, 00, 02, 00, 00, 00, 01, 13, 00, DC, 1F, 00, 00, 03, 00, 02, 00, 0A, 00, 00, 00, 00, 00, 08, 00, 00, 00, 00, 00, 00, C3, 0B, 00, 00, 44, 43, 4D, 20, 4C, 49, 4D, 49, 54, 45, 44, 03, 00, 00, 53, 43, 4D, 09, 00, 00, 53, 43, 4D, 44, 43, 4D, 54, 4F, 50]
	at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:106)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.apache.poi.hssf.record.RecordFactory$ReflectionRecordCreator.create(RecordFactory.java:63)

BiffViewer throws the following exception:

  [java] Offset=0x00009FE0(40928) recno=771 sid=0x0018 size=0x0024(36)
     [java] [NAME]
     [java]     .option flags           = 0x0000
     [java]     .keyboard shortcut      = 0x00
     [java]     .length of the name     = 10
     [java]     .extSheetIx(1-based, 0=Global)= 0
     [java]     .sheetTabIx             = 0
     [java]     .Menu text length       = 0
     [java]     .Description text length= 0
     [java]     .Help topic text length = 0
     [java]     .Status bar text length = 0
     [java]     .NameIsMultibyte        = false
     [java]     .Name (Unicode text)    = xxxxxx
     [java]     .Formula (nTokens=1):
     [java]        org.apache.poi.hssf.record.formula.Area3DPtg [sheetIx=0 ! $DH$138:$DH$263]R
     [java]     .Menu text       = 
     [java]     .Description text= 
     [java]     .Help topic text = 
     [java]     .Status bar text = 
     [java] [/NAME]

[java] Offset=0x0000A008(40968) recno=772 sid=0x01C1 size=0x0008(8)
     [java] [UNKNOWNRECORD] (0x1C1)
     [java]   rawData=[C1, 01, 00, 00, 22, BE, 01, 00]
     [java] [/UNKNOWNRECORD]
     [java] 
     [java] java.lang.ArrayIndexOutOfBoundsException
     [java]     at java.lang.System.arraycopy(Native Method)
     [java]     at org.apache.poi.ddf.EscherMetafileBlip.fillFields(EscherMetafileBlip.java:93)
     [java]     at org.apache.poi.ddf.EscherBSERecord.fillFields(EscherBSERecord.java:79)
     [java]     at org.apache.poi.ddf.EscherContainerRecord.fillFields(EscherContainerRecord.java:53)
     [java]     at org.apache.poi.ddf.EscherContainerRecord.fillFields(EscherContainerRecord.java:53)
     [java]     at org.apache.poi.hssf.record.AbstractEscherHolderRecord.convertToEscherRecords(AbstractEscherHolderRecord.java:82)
     [java]     at org.apache.poi.hssf.record.AbstractEscherHolderRecord.<init>(AbstractEscherHolderRecord.java:68)
     [java]     at org.apache.poi.hssf.record.DrawingGroupRecord.<init>(DrawingGroupRecord.java:41)
     [java]     at org.apache.poi.hssf.dev.BiffViewer.createRecord(BiffViewer.java:149)
     [java]     at org.apache.poi.hssf.dev.BiffViewer.createRecords(BiffViewer.java:84)
     [java]     at org.apache.poi.hssf.dev.BiffViewer.main(BiffViewer.java:398)

The spreadsheet contains Macros and links, it opens fine in OpenOffice 3.0.1 build 9379.
Comment 1 Yegor Kozlov 2009-05-23 00:03:36 UTC
Can you attach the problem file? 

Yegor
Comment 2 Dominik Stadler 2013-08-05 09:37:12 UTC
no response in a long time => resolving for now, please reopen with more information ifnthis is still an issue