Bug 64500 - LeftoverDataException: Initialisation of record 0x85(BoundSheetRecord) left 28 bytes remaining still to be read
Summary: LeftoverDataException: Initialisation of record 0x85(BoundSheetRecord) left 2...
Status: NEW
Alias: None
Product: POI
Classification: Unclassified
Component: HSSF (show other bugs)
Version: 4.1.2-FINAL
Hardware: PC Linux
: P2 critical (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-05 19:44 UTC by Xiaohong Yang
Modified: 2020-06-05 19:44 UTC (History)
0 users



Attachments
Excel file to reproduce the problem (31.52 KB, application/vnd.ms-excel)
2020-06-05 19:44 UTC, Xiaohong Yang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Xiaohong Yang 2020-06-05 19:44:46 UTC
Created attachment 37290 [details]
Excel file to reproduce the problem

When I try to get the metadata of the sample excel file with the AutoDetectParser.parse method with the following Java code, I got an error "Initialisation of record 0x85(BoundSheetRecord) left 28 bytes remaining still to be read" caused by org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException:

InputStream input = new FileInputStream(localFilePath);
BodyContentHandler handler = = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
TikaConfig config = TikaConfigFactory.getTikaConfig();
Parser autoDetectParser = new AutoDetectParser(config);
ParseContext context = new ParseContext();
context.set(TikaConfig.class, config);
autoDetectParser.parse(input, handler, metadata, context);
	
Here is the stack trace:

org.apache.tika.exception.TikaException: Unexpected RuntimeException from org.apache.tika.parser.microsoft.OfficeParser@2caa5ec
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:282)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:143)
	… 
	at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
	at java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0x85(BoundSheetRecord) left 28 bytes remaining still to be read.
	at org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:188)
	at org.apache.poi.hssf.extractor.OldExcelExtractor.getText(OldExcelExtractor.java:233)
	at org.apache.tika.parser.microsoft.OldExcelParser.parse(OldExcelParser.java:57)
	at org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:158)
	at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:183)
	at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:131)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
	... 15 more