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]