Summary for those who came in late: Reading different files using different HSSFWorkbook objects in different threads works fine on a single processor box, but doesnt work on a multi processor box.
I have the sinking feeling that we have hit some nice Java Memory Model issue. While Java Memory Model does not guarantee that multithreaded programs behave the same in single and multi-processor boxes, its actually very rare to see these errors in practice (incorrect concurrent access to a static variable, for example, will show up in a multithreaded program even on a single processor box. ) So its something much more subtle. The error is however quite consistent. I have tested on a dual proc Xeon/Linux and a dual Sparc/Solaris. The only workaround for now is that only one thread at a time reads a file into an HSSFWorkbook. Am continuing to look at it..tho am not very hopeful for an immediate fix.. its a dog to debug! On Fri, 2003-06-13 at 22:11, Avik Sengupta wrote: > [moving to poi dev] > I have now confirmed this issue. A simple program reading different xls > files in different threads using different instances of PoifsFileSystem > and HSSFWorkbook fails. > > I am currently unable to say further why this is so, since a quick look > at both POIFSFileSystem and HSSFWorkbook show no instances of static > data. Will look into this further. > > Regards > - > Avik > > > On Wed, 2003-05-14 at 14:41, Avik Sengupta wrote: > > I do not believe there are static stuff which precludes reading many > > files at a go, but i could be wrong. > > > > I would actually guess that one particular file of yours is throwing up > > some pre-existing bug in poi. Have you checked that all the files you > > want to open can be opened sequentially in poi? > > > > On Tue, 2003-05-13 at 22:38, [EMAIL PROTECTED] wrote: > > > Hi Avik, > > > > > > Thanks a lot for the response. > > > I am creating diff. HSSFWorkBook for diff. uploaded files via diff. threads. > > > But for some reason one of the WorkBook constructor fails. > > > > > > Can you please let me know if we have any limit on reading the files concurrently > > > or any other part of the code( static stuff ) that may be causing this issue. > > > > > > By the way, can I have your contact # or do you prefer to have my contact # and > > > we can have a quick chat. > > > > > > Cheers > > > Vilay > > > > > > > > > -----Original Message----- > > > From: Avik Sengupta [mailto:[EMAIL PROTECTED] > > > Sent: Tuesday, May 13, 2003 5:53 AM > > > To: POI Users List > > > Subject: Re: Concurrency Issue > > > > > > > > > you cannot use a single HSSFWorkbook object from more than one thread. > > > you will need to synchronise access to that object. Of course, you can > > > use different HSSFWorkbook objects in different threads concurrently. > > > > > > > > > > > > On Tue, 2003-05-13 at 02:00, [EMAIL PROTECTED] wrote: > > > > Hi Guys, > > > > > > > > I am having problem reading more than one file Excel files concurrently. > > > > Reading individual files seem to be fine. > > > > > > > > The exception I get is as follows: > > > > > > > > java.lang.reflect.InvocationTargetException: > > > > java.lang.ArrayIndexOutOfBoundsException > > > > at org.apache.poi.util.LittleEndian.getNumber(LittleEndian.java:557) > > > > at org.apache.poi.util.LittleEndian.getInt(LittleEndian.java:177) > > > > at > > > > org.apache.poi.hssf.record.DimensionsRecord.fillFields(DimensionsRecord.java:121) > > > > at org.apache.poi.hssf.record.Record.fillFields(Record.java:143) > > > > at org.apache.poi.hssf.record.Record.<init>(Record.java:105) > > > > at > > > > org.apache.poi.hssf.record.DimensionsRecord.<init>(DimensionsRecord.java:94) > > > > at java.lang.reflect.Constructor.newInstance(Native Method) > > > > at > > > > org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:254) > > > > at > > > > org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:192) > > > > at > > > > org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191) > > > > at > > > > org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:158) > > > > > > > > > > > > > > > > Your help is highly appreciated. > > > > > > > > Best Regards, > > > > Vilay > > > > > > > > Visit our website at http://www.ubswarburg.com > > > > > > > > This message contains confidential information and is intended only > > > > for the individual named. If you are not the named addressee you > > > > should not disseminate, distribute or copy this e-mail. Please > > > > notify the sender immediately by e-mail if you have received this > > > > e-mail by mistake and delete this e-mail from your system. > > > > > > > > E-mail transmission cannot be guaranteed to be secure or error-free > > > > as information could be intercepted, corrupted, lost, destroyed, > > > > arrive late or incomplete, or contain viruses. The sender therefore > > > > does not accept liability for any errors or omissions in the contents > > > > of this message which arise as a result of e-mail transmission. If > > > > verification is required please request a hard-copy version. This > > > > message is provided for informational purposes and should not be > > > > construed as a solicitation or offer to buy or sell any securities or > > > > related financial instruments. > > > > > > > > > > > > --------------------------------------------------------------------- > > > > 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] > > > > > > > > > Visit our website at http://www.ubswarburg.com > > > > > > This message contains confidential information and is intended only > > > for the individual named. If you are not the named addressee you > > > should not disseminate, distribute or copy this e-mail. Please > > > notify the sender immediately by e-mail if you have received this > > > e-mail by mistake and delete this e-mail from your system. > > > > > > E-mail transmission cannot be guaranteed to be secure or error-free > > > as information could be intercepted, corrupted, lost, destroyed, > > > arrive late or incomplete, or contain viruses. The sender therefore > > > does not accept liability for any errors or omissions in the contents > > > of this message which arise as a result of e-mail transmission. If > > > verification is required please request a hard-copy version. This > > > message is provided for informational purposes and should not be > > > construed as a solicitation or offer to buy or sell any securities or > > > related financial instruments. > > > > > > > > > --------------------------------------------------------------------- > > > 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]
