Thank you, Javen.  

As happens too often, I had senders-regret on this email.  I found a triggering 
file in our regression corpus and opened 61045.

No multibytes found; more details in issue.

Thank you!

-----Original Message-----
From: Javen O'Neal [mailto:javenon...@gmail.com] 
Sent: Wednesday, April 26, 2017 11:59 PM
To: POI Developers List <dev@poi.apache.org>
Subject: Re: xls record length exception

Are there any multibyte Unicode characters in the record?

Any chance you could open the file in a hex editor or modify the biff record 
reader to dump the bytes of just that record?

If the record contents are sensitive, you could redact all single-byte 
codepoints with 0x41 ("A"). Of course at that point you've probably found the 
problem...

On Apr 26, 2017 11:45, "Allison, Timothy B." <talli...@mitre.org> wrote:

All,
  I can't share the file, but...  (sorry, it hurts me too).  File opens without 
problem in Excel.  If anyone has any recommendations, I'd appreciate it.

Caused by: org.apache.poi.hssf.record.RecordFormatException: Expected to find a 
ContinueRecord in order to read remaining 1 of 51 chars
               at org.apache.poi.hssf.record.RecordInputStream.
readStringCommon(RecordInputStream.java:420)
               at org.apache.poi.hssf.record.RecordInputStream.
readCompressedUnicode(RecordInputStream.java:379)
               at org.apache.poi.hssf.record.FormatRecord.<init>(
FormatRecord.java:57)

It looks like the record length is correct, but that the XLUnicode string 
requires one more character than is stored in the record.

In a format record, I'm seeing:

1E 04 37 00  -- format record which should contain 0x37 bytes 2a 00 - index 
code and Unicode or not
33 00 00 ...  --- the XLUnicode String that should be 51 characters long

However, only 50 characters follow...and they match where the overall record 
length should end

Another format record follows immediately:
1E 04 2E 00...

Reply via email to