poi-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Narasimhan, Shyamala" <Shyamala.Narasim...@owens-minor.com>
Subject RE: RE: hssf upload file issue
Date Mon, 18 Aug 2003 14:38:47 GMT
Is there an example of using the BlockingInputStream ? 

-----Original Message-----
From: Avik Sengupta [mailto:avik.sengupta@itellix.com] 
Sent: Saturday, August 16, 2003 5:18 AM
To: POI Users List
Subject: Re: RE: hssf upload file issue

Our experience has been that reading an excel file works in one setup, and
not in another, its usually the case that the file has been corrupted in
transit.  Thousands of files are read everyday by POI :)

That said, in the last two years, there have been only TWO bugs reported in
the basic reading code that can cause issues in one environment and not the
other. You need to check if one of them is hitting you

1. You are directly sending the stream you get from the form upload to POI.
Depending on how the form upload
servlet works, you might hit the slow input stream problem. To work around,
save the file to a temp directory, and 
pass the file name to poi. Thats the best solution. Or else, there is a
bufferedinputstream in contrib, that you might want to check. 

2. If you are using a version prior to 2.0pre2, you might be hitting the
concurrency bug if you are processing more than one workbook at a time.
Upgrade, or even backporting the patch is not difficult. 

If you can conclusively rule out either of these, check out your form upload
code.. something is getting corrupted in the process.  



   -------Original Message-------
   > From: Narasimhan, Shyamala <Shyamala.Narasimhan@owens-minor.com>
   > Subject: RE: hssf upload file issue
   > Sent: 15 Aug 2003 23:21:33
   >
   >  Also I get this error at times
   >  
   >  java.lang.ArrayIndexOutOfBoundsException
   >          at
org.apache.poi.util.LittleEndian.getNumber(LittleEndian.java:557)
   >          at
org.apache.poi.util.LittleEndian.getUShort(LittleEndian.java:102)
   >          at
   >
org.apache.poi.hssf.record.SSTDeserializer.manufactureStrings(SSTDeserialize
   >  r.java:129)
   >          at
   >  org.apache.poi.hssf.record.SSTDeserializer.readStringRemainder(SSTDes
   >  erializer.java:359)
   >          at
   >  org.apache.poi.hssf.record.SSTDeserializer.processContinueRecord(SSTD
   >  eserializer.java:320)
   >          at
   >  org.apache.poi.hssf.record.SSTRecord.processContinueRecord(SSTRecord.
   >  java:539)
   >          at
   >  org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.
   >  java:218)
   >          at
   >  org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:1
   >  91)
   >          at
   >  org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:1
   >  58)
   >  
   >  -----Original Message-----
   >  From: Narasimhan, Shyamala
[mailto:Shyamala.Narasimhan@owens-minor.com]
   >  Sent: Friday, August 15, 2003 2:07 PM
   >  To: 'poi-user@jakarta.apache.org'
   >  Subject: hssf upload file issue
   >  
   >  Hi
   >  
   >  I am trying to convert (to hssf) an xls file uploaded through struts
on a
   >  weblogic server.. the file gets converted if I use a standalone java
   >  application but fails when uploaded through the web. The file contains
more
   >  than 2000 rows. This is the code that converts the file
   >  
   >  
   >  
   >        // get the file from form
   >  
   >          FormFile prodFile = uploadForm.getFile();
   >  
   >          String fileName = prodFile.getFileName();
   >  
   >          log__.info("file name = " + fileName + "... fileSize = " +
   >  prodFile.getFileSize());
   >  
   >          POIFSFileSystem fs = new
POIFSFileSystem(prodFile.getInputStream());
   >  
   >  
   >  
   >          HSSFWorkbook wb = null;
   >  
   >          try {
   >  
   >            wb = new HSSFWorkbook(fs);
   >  
   >          }
   >  
   >          catch (Exception e){
   >  
   >            e.printStackTrace();
   >  
   >          }
   >  
   >  
   >  
   >  This is the error that I am getting
   >  
   >  java.lang.NegativeArraySizeException
   >  
   >          at
   >  org.apache.poi.hssf.record.SSTDeserializer.readStringRemainder(SSTDes
   >  
   >  erializer.java:335)
   >  
   >          at
   >  org.apache.poi.hssf.record.SSTDeserializer.processContinueRecord(SSTD
   >  
   >  eserializer.java:320)
   >  
   >          at
   >  org.apache.poi.hssf.record.SSTRecord.processContinueRecord(SSTRecord.
   >  
   >  java:539)
   >  
   >          at
   >  org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.
   >  
   >  java:218)
   >  
   >          at
   >  org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:1
   >  
   >  91)
   >  
   >          at
   >  org.apache.poi.hssf.usermodel.HSSFWorkbook.(HSSFWorkbook.java:1
   >  
   >  58)
   >  
   >          at
   >  com.om.client.ui.struts.action.pmf.supplierfeed.UploadProductListActi
   >  
   >  on.perform(UploadProductListAction.java:102)
   >  
   >  
   >  
   >  can anybody pls help.
   >  
   >  Thanks
   >  
   >  Shyamala.
   -------Original Message-------



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message