Bug #3710
Updated by Michael Kay almost 6 years ago
Reported by Norm Walsh on saxon-help mailing list: Hi, I hope this is useful. Apologies, I don’t have time to coax out a smaller test case. It’s a small DocBook document. Works fine with Saxon 9.6 and 9.8, but blows up with 9.7.0-11 and 9.7.0-21. If you want to run it, I believe the following recipe will work, though it carries a bit of baggage along with it. 1. Clone https://github.com/docbook/xslt20-stylesheets/ 2. Run: gradle -PsaxonVersion=9.7.0-21 -PxmlCalabashVersion=1.1.16-97 \ --stacktrace relNotes It’ll chug on for a bit, download half the internet, compile some stuff, and then go bang. Caused by: java.lang.StackOverflowError at net.sf.saxon.expr.SystemFunctionCall.optimize(SystemFunctionCall.java:157) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496) at net.sf.saxon.expr.instruct.SimpleNodeConstructor.optimize(SimpleNodeConstructor.java:161) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496) at net.sf.saxon.expr.instruct.Block.optimize(Block.java:563) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496) at net.sf.saxon.expr.instruct.ParentNodeConstructor.optimize(ParentNodeConstructor.java:209) at net.sf.saxon.expr.instruct.FixedElement.optimize(FixedElement.java:106) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:245) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305) at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305) at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305) at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270) at net.sf.saxon.expr.Operand.optimize(Operand.java:200) at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305) … On and on and on so many times that it blows out not just the stack, but also the size limit for messages to this list!