Hello,
I'm in the middle of building a Rules engine specifically geared towards applying rules to xml documents. I was using xalan but upgraded to saxon to get XPath 2.0 functionallity. I find it to be a nice product but now I'm getting the following error after changing to saxon.
The wierd thing is that the error doesn't happen on any specific xml document in question. It only happens after the server has processed approximately 400-600 xml documents. When each document passes through the rules engine, there are approximately 1000 to 2000 xpath queries applied to it and after a lot of documents have been processed, the application no longer works.
I didn't run into this problem with xalan so I'm wondering if saxon is forgetting to release objects or the like...
Can anyone help track down what's happening?
Thank you,
Steve.
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:43:43,705 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
... repeated 10,000+ times ...
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,612 ERROR [STDERR] in net.sf.saxon.expr.Atomizer@e1904329
2006-11-16 09:44:15,706 ERROR [org.jbpm.graph.def.GraphElement] action threw exception: null
java.lang.StackOverflowError
at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:95)
at sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:134)
at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:542)
at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:384)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)
at java.io.Writer.write(Writer.java:126)
at org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:39)
at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:292)
at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
at org.apache.log4j.Category.callAppenders(Category.java:187)
at org.apache.log4j.Category.forcedLog(Category.java:372)
at org.apache.log4j.Category.log(Category.java:846)
at org.jboss.logging.util.LoggerStream.write(LoggerStream.java:152)
at org.jboss.logging.util.LoggerStream.println(LoggerStream.java:93)
at net.sf.saxon.expr.ComputedExpression.showAncestorExpressions(ComputedExpression.java:362)
at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:235)
at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186)
at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237)
at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186)
at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237)
at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186)
... repeated 1,000+ times ...
at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237) at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186) at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237) at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186) at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237) at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186) at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237) at net.sf.saxon.expr.ComputedExpression.getSystemId(ComputedExpression.java:186) at net.sf.saxon.expr.ComputedExpression.getExecutable(ComputedExpression.java:237)
Michael Kay
2006-11-16
Logged In: YES
user_id=251681
Originator: NO
Firstly, a procedural point. I ask people on the bug submission page not to file bug reports here: this is so that someone looking for known errors can get clear definitive statements of confirmed bugs, rather than having to wade through long discussions. This one seems likely to take a few iterations to pin down, so I'm going to ask you to resubmit it on the saxon-help forum, please. Sorry about this.
It looks to me as if the compiled expression tree for a particular XPath expression has a loop in it. I'd be surprised if it's time-dependent, I would think it's more likely to be triggered by some condition that occurs rarely in the source data.
sschwen
2006-11-16
Logged In: YES
user_id=1647039
Originator: YES
Sorry about that. I will submit it to the help mailing list.
sschwen
2006-11-16
Logged In: YES
user_id=1647039
Originator: YES
Sorry about that. I will submit it to the help mailing list.