Bug 50118

Summary: java.lang.IllegalArgumentException: components cannot contain null or empty strings
Product: POI Reporter: Raj Nagappan <raj.nagappan>
Component: POIFSAssignee: POI Developers List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 3.5-FINAL   
Target Milestone: ---   
Hardware: PC   
OS: All   
Attachments: an OLE binary file that creates the exception upon load

Description Raj Nagappan 2010-10-19 18:55:56 UTC
Created attachment 26184 [details]
an OLE binary file that creates the exception upon load

When I try to open a OLE binary with POI I get the following error message. The binaries are generated outside us so we have no control over them - we have to accept what we receive.

java.lang.IllegalArgumentException: components cannot contain null or empty strings
	at org.apache.poi.poifs.filesystem.POIFSDocumentPath.<init>(POIFSDocumentPath.java:131)
	at org.apache.poi.poifs.filesystem.DirectoryNode.<init>(DirectoryNode.java:72)
	at org.apache.poi.poifs.filesystem.DirectoryNode.createDirectory(DirectoryNode.java:330)
	at org.apache.poi.poifs.filesystem.POIFSFileSystem.processProperties(POIFSFileSystem.java:516)
	at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:176)

A sample file that creates the error is attached.
Comment 1 Nick Burch 2010-10-19 18:57:56 UTC
Is the problem still there with poi 3.7 beta 3? There has been some poifs work since 3.5

Also, what is generating the problem file? Office or something else?
Comment 2 Raj Nagappan 2010-10-19 22:42:35 UTC
Yes it still occurs in 3.7 beta 3. It was created by embedded an object into a Lotus Notes memo file.
Comment 3 Nick Burch 2010-10-22 13:24:44 UTC
Fixed in r1026412 - while I was sure it wasn't allowed to have an empty path, it turns out it is, so we now support that.
Comment 4 Raj Nagappan 2010-10-24 18:12:06 UTC
Thanks for this :-)