Bug 44840

Summary: HSSFObjectData: how to read the entry of an CheckBox
Product: POI Reporter: gazanfer ercan <gazanfer.ercan.ext>
Component: HSSFAssignee: POI Developers List <dev>
Status: RESOLVED FIXED    
Severity: major CC: gazanfer.ercan.ext
Priority: P2    
Version: 3.0-FINAL   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Attachments: excel file with an embedded object
test case

Description gazanfer ercan 2008-04-18 00:22:32 UTC
> If I call getDirectory() this throws an exception.
>
> java.io.FileNotFoundException: no such entry: "MBD00000000"

Your ftPictFmla references the steam with id 0:
     .streamId             = 0x00000000 (0 )
But no such stream exists in your file, which is going to be a problem.

I've taken a look at EmbeddedObjectRefSubRecord, and I'm not completely
sure it's correct. Any chance you could open a new bug on bugzilla, and
upload the problem file, so we can take a look?
Comment 1 Nick Burch 2008-04-27 11:02:22 UTC
Could you please upload the problem excel file too? We'll need to take a look in it to see exactly what your EmbeddedObjectRefSubRecord contains
Comment 2 gazanfer ercan 2008-04-28 00:37:48 UTC
Created attachment 21865 [details]
excel file with an embedded object
Comment 3 gazanfer ercan 2008-04-28 00:38:32 UTC
Created attachment 21866 [details]
test case
Comment 4 Nick Burch 2008-05-23 08:56:05 UTC
I think that in some cases, the object data is stored in the record itself, and not in another POIFS stream

I've updated HSSFObjectData, so that it will tell you if it looks like there's a directory entry or not. It will now also give you the OLE2 class name, and the data if there's no directory entry.

Hopefully that'll fix things for you.