One additional note, is that this is running in a 64bit JVM... does that cause any issues?

From: Ackley, Paul
Sent: Monday, March 16, 2009 10:31 AM
To: Mailing list for the SAXON XSLT and XQuery processor
Cc: Ackley, Paul
Subject: RE: [saxon] ArrayIndexOutOfBoundsException in Saxon 8.6

Yes I will try it when the debugging version is released.  BTW - I would agree with your JVM bug theory.  We've been using this for some time and have not had this problem before moving to BEA/Oracle's JRockit JVM running on Linux.  I'm going to see if there have been any updates to the JVM for this.





 I've put a diagnostic patch into Subversion to print out relevant data structures when this occurs, and this will be in the build when I get that out.

I've done some careful desk-checking of the code and (a) I can't find anything wrong, and (b) there aren't even any suspicious circumstances, like use of shared memory areas or the NamePool. I'm increasingly suspecting a JVM bug. I know that sounds like desperation but they do happen.

To give some background, Saxon is compiling a literal result element, and searches the tree representation of the stylesheet to find all in-scope namespaces, each of which is represented by an integer code. It puts these codes in a data structure called IntHashSet, and then later reads the values out into an array of integers. The size of the array is initialized to intHashSet.size(), and the codes are then extracted using an iterator. The iterator appears to return more codes than the size of the array.

Michael Kay http://www.saxonica.com/


From: Michael Kay [mailto:mi@saxonica.com] Sent: 13 March 2009 00:13 To: 'Mailing list for the SAXON XSLT and XQuery processor' Subject: Re: [saxon] ArrayIndexOutOfBoundsException in Saxon 8.6

OK thanks for the update. I think I'm going to have to try and produce a diagnostic patch for you to install, if you would be willing. (As it's on an exception path, I may simply build this into, which I need to release soon anyway).

Michael Kay http://www.saxonica.com/