poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Fisher <dfis...@jmlafferty.com>
Subject Re: exception when inputstream is read from getClass().getClassLoader().getResourceAsStream("file.xls")
Date Sun, 22 Nov 2009 00:47:05 GMT
You might take a look at http://mindprod.com/jgloss/getresourceasstream.html

See if it helps you out.

Also, you might try to update to the latest jdk 1.5.0_xx

Regards,
Dave

On Nov 18, 2009, at 11:10 AM, individuodk wrote:

>
> Hi,
>
> version poi: 3.5-FINAL
> jdk: 1.5.0_02
>
> the file is the same file that works with FileInputStream("path");
> Also, it happens with blank excel file.
>
> thanksss!
>
>
>
> David Fisher wrote:
>>
>> Hi -
>>
>> Have you confirmed that the stream you are getting is a valid file?
>> Could there be another non-xls or damaged file hiding somewhere on
>> your classpath with your resource name?
>>
>> Try simply writing out the stream you have to the filesystem and see
>> if it is an actual XLS file.
>>
>> Also, it could be helpful if you tell us which versions of POI and
>> Java you are using.
>>
>> Regards,
>> Dave
>>
>> On Nov 18, 2009, at 10:15 AM, individuodk wrote:
>>
>>>
>>> Hi,
>>>
>>> System.out.println(inputStream.getClass().getName());
>>> is a curiusious solution, but unfortunatelly it doesn´t work.
>>>
>>> log:
>>> java.io.BufferedInputStream
>>> [ java.io.IOException ] block[ 63 ] already removed - does your
>>> POIFS have
>>> circular or duplicate block references?java.io.IOException:
>>> block[ 63 ]
>>> already removed - does your POIFS have circular or duplicate block
>>> references?
>>> 	at
>>> org
>>> .apache.poi.poifs.storage.BlockListImpl.remove(BlockListImpl.java:
>>> 89)
>>> 	at
>>> org
>>> .apache
>>> .poi.poifs.storage.RawDataBlockList.remove(RawDataBlockList.java:32)
>>> 	at
>>> org
>>> .apache
>>> .poi
>>> .poifs
>>> .storage
>>> .BlockAllocationTableReader
>>> .fetchBlocks(BlockAllocationTableReader.java:187)
>>> 	at
>>> org
>>> .apache
>>> .poi.poifs.storage.BlockListImpl.fetchBlocks(BlockListImpl.java:123)
>>> 	at
>>> org
>>> .apache
>>> .poi
>>> .poifs.storage.RawDataBlockList.fetchBlocks(RawDataBlockList.java: 
>>> 32)
>>> 	at
>>> org
>>> .apache
>>> .poi
>>> .poifs
>>> .filesystem.POIFSFileSystem.processProperties(POIFSFileSystem.java:
>>> 541)
>>> 	at
>>> org
>>> .apache
>>> .poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java: 
>>> 176)
>>> 	at
>>> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>> 316)
>>> 	at
>>> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>> 297)
>>> 	at
>>> org
>>> .apache 
>>> .poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:
>>> 60)
>>>
>>> very thanks MSB,
>>> has anybody another idea?
>>>
>>>
>>> MSB wrote:
>>>>
>>>> I do not know the answer to your question but I would like to
>>>> discover
>>>> just what type of stream you are getting back when you call the
>>>> getResourceAsStream() method. If you have the time, it may be worth
>>>> adding
>>>> a System.out.println(inputStream.getClass().getName()); statement
>>>> just to
>>>> see what you are actually getting back; something like;
>>>>
>>>> if (sourcePath == null){
>>>>   inputStream =
>>>> getClass().getClassLoader().getResourceAsStream("file.xls");
>>>>   System.out.println(inputStream.getClass().getName());
>>>>   workbook = WorkbookFactory.create(inputStream);
>>>> }
>>>>
>>>> Also - and I admit that there is no reason why you would need to do
>>>> this -
>>>> you could try wrapping up that input stream into a FileInputStream
>>>> just,
>>>> again, to see what happens.
>>>>
>>>> Yours
>>>>
>>>> Mark B
>>>>
>>>>
>>>> individuodk wrote:
>>>>>
>>>>> hi!!
>>>>> poi-3.5-FINAL.jar
>>>>>
>>>>>
>>>>> 			if (sourcePath == null){
>>>>> 				inputStream =
>>>>> getClass().getClassLoader().getResourceAsStream("file.xls");
>>>>> 				workbook = WorkbookFactory.create(inputStream);
>>>>> 			}
>>>>> 			else{
>>>>> 				inputStream = new FileInputStream(sourcePath);
>>>>> 				workbook = WorkbookFactory.create(inputStream);
>>>>> 			}
>>>>>
>>>>> When i read excel file from FileInputStream to modify it, all
>>>>> works fine.
>>>>> When i read excel file (SAME excel file) from
>>>>> getClass().getClassLoader().getResourceAsStream..., all are
>>>>> exceptions
>>>>> like next:
>>>>>
>>>>> convertPOIOutputStream|null|Exception||4|5|N|
>>>>> [ java.io.IOException ]
>>>>> block[ 63 ] already removed -
>>>>> does your POIFS have circular or duplicate block
>>>>> references?java.io.IOException: block[ 63 ] already
>>>>> removed - does your POIFS have circular or duplicate block
>>>>> references?
>>>>>       at
>>>>> org
>>>>> .apache.poi.poifs.storage.BlockListImpl.remove(BlockListImpl.java:
>>>>> 89)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi.poifs.storage.RawDataBlockList.remove(RawDataBlockList.java: 
>>>>> 32)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .poifs
>>>>> .storage
>>>>> .BlockAllocationTableReader.fetchBlocks(BlockAllocationTableR
>>>>> eader.java:187)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi.poifs.storage.BlockListImpl.fetchBlocks(BlockListImpl.java: 
>>>>> 123)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .poifs.storage.RawDataBlockList.fetchBlocks(RawDataBlockList.java:
>>>>> 32)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .poifs
>>>>> .filesystem 
>>>>> .POIFSFileSystem.processProperties(POIFSFileSystem.java:
>>>>> 54
>>>>> 1)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:
>>>>> 176)
>>>>>
>>>>>
>>>>> or
>>>>>
>>>>> convertPOIOutputStream|null|Exception||4|5|N| [
>>>>> org.apache.poi.hssf.record.RecordFormatException ] U
>>>>> nable to construct record
>>>>> instanceorg.apache.poi.hssf.record.RecordFormatException: Unable  
>>>>> to
>>>>> constr
>>>>> uct record instance
>>>>>       at
>>>>> org.apache.poi.hssf.record.RecordFactory
>>>>> $ReflectionRecordCreator.create(RecordFactory.jav
>>>>> a:64)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .hssf.record.RecordFactory.createSingleRecord(RecordFactory.java:
>>>>> 263)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .hssf
>>>>> .record
>>>>> .RecordFactoryInputStream.readNextRecord(RecordFactoryInputStre
>>>>> am.java:270)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi
>>>>> .hssf
>>>>> .record
>>>>> .RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.j
>>>>> ava:236)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi.hssf.record.RecordFactory.createRecords(RecordFactory.java: 
>>>>> 377)
>>>>>       at
>>>>> org
>>>>> .apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>>>> 275)
>>>>>       at
>>>>> org
>>>>> .apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>>>> 200)
>>>>>       at
>>>>> org
>>>>> .apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>>>> 316)
>>>>>       at
>>>>> org
>>>>> .apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:
>>>>> 297)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:60)
>>>>>
>>>>>
>>>>> any idea about how to input file to resource? why does it  
>>>>> happen ???
>>>>> thanks!
>>>>>
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/exception-when-inputstream-is-read-from-getClass%28%29.getClassLoader%28%29.getResourceAsStream%28%22file.xls%22%29-tp26406348p26412919.html
>>> Sent from the POI - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
>>> For additional commands, e-mail: user-help@poi.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
>> For additional commands, e-mail: user-help@poi.apache.org
>>
>>
>>
>
> -- 
> View this message in context: http://old.nabble.com/exception-when-inputstream-is-read-from-getClass%28%29.getClassLoader%28%29.getResourceAsStream%28%22file.xls%22%29-tp26406348p26413812.html
> Sent from the POI - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
> For additional commands, e-mail: user-help@poi.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@poi.apache.org
For additional commands, e-mail: user-help@poi.apache.org


Mime
View raw message