Reputation: 496
We're using Saxon-EE 9.9.1.6 in our project. Until June it was working fine, but starting from that time many of our customers have encountered with the following error when trying to execute a priori valid xslt file:
System.NullReferenceException details:
Message: Object reference not set to an instance of an object.
Source : saxon9ee
Method : net.sf.saxon.expr.Expression bind(F, net.sf.saxon.expr.Expression[], net.sf.saxon.expr.StaticContext, java.util.List)
Stack : at net.sf.saxon.functions.FunctionLibraryList.bind(F functionName, Expression[] staticArgs, StaticContext env, List reasons)
at net.sf.saxon.functions.FunctionLibraryList.bind(F functionName, Expression[] staticArgs, StaticContext env, List reasons)
at net.sf.saxon.expr.parser.XPathParser.parseFunctionCall(Expression prefixArgument)
at net.sf.saxon.expr.parser.XPathParser.parseBasicStep(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseStepExpression(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseRelativePath()
at net.sf.saxon.expr.parser.XPathParser.parsePathExpression()
at net.sf.saxon.expr.parser.XPathParser.parseSimpleMappingExpression()
at net.sf.saxon.expr.parser.XPathParser.parseUnaryExpression()
at net.sf.saxon.expr.parser.XPathParser.parseExprSingle()
at net.sf.saxon.expr.parser.XPathParser.parseFunctionArgument()
at net.sf.saxon.expr.parser.XPathParser.parseFunctionCall(Expression prefixArgument)
at net.sf.saxon.expr.parser.XPathParser.parseBasicStep(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseStepExpression(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseRelativePath()
at net.sf.saxon.expr.parser.XPathParser.parsePathExpression()
at net.sf.saxon.expr.parser.XPathParser.parseSimpleMappingExpression()
at net.sf.saxon.expr.parser.XPathParser.parseUnaryExpression()
at net.sf.saxon.expr.parser.XPathParser.parseExprSingle()
at net.sf.saxon.expr.parser.XPathParser.parseFunctionArgument()
at net.sf.saxon.expr.parser.XPathParser.parseFunctionCall(Expression prefixArgument)
at net.sf.saxon.expr.parser.XPathParser.parseBasicStep(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseStepExpression(Boolean firstInPattern)
at net.sf.saxon.expr.parser.XPathParser.parseRelativePath()
at net.sf.saxon.expr.parser.XPathParser.parsePathExpression()
at net.sf.saxon.expr.parser.XPathParser.parseSimpleMappingExpression()
at net.sf.saxon.expr.parser.XPathParser.parseUnaryExpression()
at net.sf.saxon.expr.parser.XPathParser.parseExprSingle()
at net.sf.saxon.expr.parser.XPathParser.parseExpression()
at net.sf.saxon.expr.parser.XPathParser.parse(String expression, Int32 start, Int32 terminator, StaticContext env)
at net.sf.saxon.expr.parser.ExpressionTool.make(String expression, StaticContext env, Int32 start, Int32 terminator, CodeInjector codeInjector)
at net.sf.saxon.style.StyleElement.makeExpression(String expression, Int32 attIndex)
at net.sf.saxon.style.XSLValueOf.prepareAttributes()
at net.sf.saxon.style.StyleElement.processAttributes()
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(NodeInfo )
at net.sf.saxon.style.StyleElement.__<>Anon1.accept(Item )
at net.sf.saxon.om.SequenceIterator.<default>forEachOrFail(SequenceIterator , ItemConsumer )
at net.sf.saxon.style.StyleElement.processAllAttributes()
at net.sf.saxon.style.XSLTemplate.processAllAttributes()
at net.sf.saxon.style.PrincipalStylesheetModule.processAllAttributes()
at net.sf.saxon.style.PrincipalStylesheetModule.preprocess()
at net.sf.saxon.style.Compilation.compilePackage(Source source)
at net.sf.saxon.style.StylesheetModule.loadStylesheet(Source styleSource, Compilation compilation)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Configuration config, CompilerInfo compilerInfo, Source source)
at net.sf.saxon.s9api.XsltCompiler.compile(Source source)
at Saxon.Api.XsltCompiler.Compile(TextReader input)
at EDG.SaxonWrapper.XsltParser.CreateExecutable(FileInfo stylesheet)
Does anybody encountered with such behavior too and have ideas how to avoid it?
I suppose it can be related to some kind of Windows/Antivirus updates, but I can't reproduce it locally and I can't do much on customer's prod environments. Or it can be related to Saxon 9.9 release, because we never encountered with such issue on Saxon 9.7.
P.S. Our colleagues from similar project were getting almost the same error:
DocGen Result Exception. Response is invalid: Request is failed. Response body: {"message":"Error generating document (7cf581ac-2287-4396-bca4-0d5c5af9c308). Error: null (java.lang.NullPointerException)\n Stack Trace: java.lang.NullPointerException
at net.sf.saxon.functions.FunctionLibraryList.bind(FunctionLibraryList.java:124)
at net.sf.saxon.functions.FunctionLibraryList.bind(FunctionLibraryList.java:124)
at net.sf.saxon.expr.parser.XPathParser.parseFunctionCall(XPathParser.java:3356)
at net.sf.saxon.expr.parser.XPathParser.parseBasicStep(XPathParser.java:2206)
at net.sf.saxon.expr.parser.XPathParser.parseStepExpression(XPathParser.java:2076)
at net.sf.saxon.expr.parser.XPathParser.parseRelativePath(XPathParser.java:2000)
at net.sf.saxon.expr.parser.XPathParser.parsePathExpression(XPathParser.java:1957)
at net.sf.saxon.expr.parser.XPathParser.parseSimpleMappingExpression(XPathParser.java:1971)
at net.sf.saxon.expr.parser.XPathParser.parseUnaryExpression(XPathParser.java:1824)
at net.sf.saxon.expr.parser.XPathParser.parseExprSingle(XPathParser.java:753)
at net.sf.saxon.expr.parser.XPathParser.parseFunctionArgument(XPathParser.java:3552)
at net.sf.saxon.expr.parser.XPathParser.parseFunctionCall(XPathParser.java:3322)
at net.sf.saxon.expr.parser.XPathParser.parseBasicStep(XPathParser.java:2206)
at net.sf.saxon.expr.parser.XPathParser.parseStepExpression(XPathParser.java:2076)
at net.sf.saxon.expr.parser.XPathParser.parseRelativePath(XPathParser.java:1995)
at net.sf.saxon.expr.parser.XPathParser.parsePathExpression(XPathParser.java:1957)
at net.sf.saxon.expr.parser.XPathParser.parseSimpleMappingExpression(XPathParser.java:1971)
at net.sf.saxon.expr.parser.XPathParser.parseUnaryExpression(XPathParser.java:1824)
at net.sf.saxon.expr.parser.XPathParser.parseExprSingle(XPathParser.java:753)
at net.sf.saxon.expr.parser.XPathParser.parseExpression(XPathParser.java:660)
at net.sf.saxon.expr.parser.XPathParser.parse(XPathParser.java:522)
at net.sf.saxon.expr.parser.ExpressionTool.make(ExpressionTool.java:107)
at net.sf.saxon.style.StyleElement.makeExpression(StyleElement.java:735)
at net.sf.saxon.style.XSLValueOf.prepareAttributes(XSLValueOf.java:51)
at net.sf.saxon.style.StyleElement.processAttributes(StyleElement.java:618)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:551)
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(StyleElement.java:554)
at net.sf.saxon.om.SequenceIterator.forEachOrFail(SequenceIterator.java:128)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:552)
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(StyleElement.java:554)
at net.sf.saxon.om.SequenceIterator.forEachOrFail(SequenceIterator.java:128)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:552)
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(StyleElement.java:554)
at net.sf.saxon.om.SequenceIterator.forEachOrFail(SequenceIterator.java:128)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:552)
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(StyleElement.java:554)
at net.sf.saxon.om.SequenceIterator.forEachOrFail(SequenceIterator.java:128)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:552)
at net.sf.saxon.style.StyleElement.lambda$processAllAttributes$1(StyleElement.java:554)
at net.sf.saxon.om.SequenceIterator.forEachOrFail(SequenceIterator.java:128)
at net.sf.saxon.style.StyleElement.processAllAttributes(StyleElement.java:552)
at net.sf.saxon.style.XSLTemplate.processAllAttributes(XSLTemplate.java:427)
at net.sf.saxon.style.PrincipalStylesheetModule.processAllAttributes(PrincipalStylesheetModule.java:583)
at net.sf.saxon.style.PrincipalStylesheetModule.preprocess(PrincipalStylesheetModule.java:367)
at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:287)
at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:223)
at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:107)
at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:788)
at com.tr.e3etdocgen.SaxonWrapper.getTemplate(SaxonWrapper.java:232)
at com.tr.e3etdocgen.SaxonWrapper.lambda$initTemplates$0(SaxonWrapper.java:177)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:650)
at com.tr.e3etdocgen.SaxonWrapper.initTemplates(SaxonWrapper.java:174)
at com.tr.e3etdocgen.SaxonWrapper.transform(SaxonWrapper.java:126)
at com.tr.e3etdocgen.Function.run(Function.java:72)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.microsoft.azure.functions.worker.broker.JavaMethodInvokeInfo.invoke(JavaMethodInvokeInfo.java:22)
at com.microsoft.azure.functions.worker.broker.JavaMethodExecutorImpl.execute(JavaMethodExecutorImpl.java:54)
at com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:57)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)
at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)
at com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45)
at com.microsoft.azure.functions.worker.JavaWorkerClient$StreamingMessagePeer.lambda$onNext$0(JavaWorkerClient.java:92)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
(java.lang.NullPointerException)","status":"error"},
status: InternalServerError
Upvotes: 0
Views: 226
Reputation: 163322
I guess the message "There was an error while attempting to compile the stylesheet" is produced by your application if the call on compile() throws an exception. You're welcome to raise this directly with Saxonica support, but we will need more detailed diagnostics than this.
One possibility, if you are running many stylesheet compilations (which your post suggests might be the case) is that you are hitting a JVM limit with the number of classes that can be compiled using bytecode generation. Switching bytecode generation off would probably be a good idea in that kind of scenario.
UPDATE (2021-10-31): A bug report was raised at https://saxonica.plan.io/issues/5148 and has been resolved.
Upvotes: 2