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]

Reply via email to