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: [email protected]
>> For additional commands, e-mail: [email protected]
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to