Project

Profile

Help

Bug #6378

closed

NPE while transforming with a TraceListener

Added by Mircea Enachescu about 1 month ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
XSLT 3.0 packages
Sprint/Milestone:
Start date:
2024-03-26
Due date:
% Done:

0%

Estimated time:
Legacy ID:
Applies to branch:
11, 12, trunk
Fix Committed on Branch:
11, 12, trunk
Fixed in Maintenance Release:
Platforms:
Java

Description

While debugging with Oxygen the xml file: 47465.xml with the stylesheet: bho-to-clml.xml and using as configuration file for SaxonEE the "saxon.xml" file, we got the following exception:

ERROR [ TransformationEngine ] ro.sync.xml.transformer.TransformerCreator - Got a NPE trying to validate a stylesheet!! java.lang.NullPointerException
java.lang.NullPointerException: null
        at net.sf.saxon.expr.parser.ExpressionTool.injectCode(ExpressionTool.java:175)
        at net.sf.saxon.trace.TraceCodeInjector.process(TraceCodeInjector.java:46)
        at net.sf.saxon.style.XSLGlobalVariable.compileDeclaration(XSLGlobalVariable.java:299)
        at net.sf.saxon.style.PrincipalStylesheetModule.compile(PrincipalStylesheetModule.java:1291)
        at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:324)
        at net.sf.saxon.trans.packages.PackageLibrary.obtainLoadedPackage(PackageLibrary.java:309)
        at net.sf.saxon.style.Compilation.satisfyPackageDependencies(Compilation.java:205)
        at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:283)
        at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:254)
        at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:113)
        at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:971)
        at net.sf.saxon.jaxp.SaxonTransformerFactory.newTemplates(SaxonTransformerFactory.java:174)
        at net.sf.saxon.jaxp.SaxonTransformerFactory.newTransformer(SaxonTransformerFactory.java:131)
        at ro.sync.xml.transformer.TransformerCreator.createInternalXSLTTransformer(TransformerCreator.java:2556)
        at ro.sync.xml.transformer.TransformerCreator.createXSLOrJSONTransformer(TransformerCreator.java:1641)
        at ro.sync.xml.transformer.TransformerCreator.createTransformer(TransformerCreator.java:811)
        at ro.sync.xml.transformer.TransformerCreator.createTransformer(TransformerCreator.java:708)
        at ro.sync.xml.transformer.TransformerCreator.createTransformer(TransformerCreator.java:684)
        at ro.sync.dxsl.debugger.saxon8.SaxonXSLTDebugger.createTransformer(SaxonXSLTDebugger.java:235)
        at ro.sync.dxsl.debugger.AbstractXSLTDebugger.initEngine(AbstractXSLTDebugger.java:429)
        at ro.sync.dxsl.debugger.AbstractXSLTDebugger.run(AbstractXSLTDebugger.java:561)
        at java.base/java.lang.Thread.run(Thread.java:1595)

Please note that we use in Oxygen Saxon 12.3.

We reproduce the problem also from the command line, using the Saxon-EE 12.4:

java -jar saxon-ee-12.4.jar -s:47465.xml -xsl:bho-to-clml.xsl -config:saxon.xml -T
java.lang.NullPointerException: Cannot invoke "net.sf.saxon.expr.Expression.operands()" because "exp" is null
        at net.sf.saxon.expr.parser.ExpressionTool.injectCode(ExpressionTool.java:175)
        at net.sf.saxon.trace.TraceCodeInjector.process(TraceCodeInjector.java:46)
        at net.sf.saxon.style.XSLGlobalVariable.compileDeclaration(XSLGlobalVariable.java:299)
        at net.sf.saxon.style.PrincipalStylesheetModule.compile(PrincipalStylesheetModule.java:1290)
        at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:338)
        at net.sf.saxon.trans.packages.PackageLibrary.obtainLoadedPackage(PackageLibrary.java:309)
        at net.sf.saxon.style.Compilation.satisfyPackageDependencies(Compilation.java:207)
        at net.sf.saxon.style.Compilation.compilePackage(Compilation.java:297)
        at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:254)
        at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:115)
        at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:971)
        at net.sf.saxon.Transform.doTransform(Transform.java:777)
        at net.sf.saxon.Transform.main(Transform.java:83)
Fatal error during transformation: java.lang.NullPointerException: Cannot invoke "net.sf.saxon.expr.Expression.operands()" because "exp" is null

Regards, Mircea.


Files

saxonBug.zip (19 KB) saxonBug.zip Mircea Enachescu, 2024-03-26 10:32
Actions #1

Updated by Michael Kay about 1 month ago

So far I haven't been able to reproduce this. I shall keep trying.

Actions #2

Updated by Michael Kay about 1 month ago

Now reproduced. For some reason I dropped the -T option.

Actions #3

Updated by Michael Kay about 1 month ago

  • Category set to XSLT 3.0 packages
  • Assignee set to Michael Kay

OK, got it: it's trying to inject trace code into the body of the variable

<xsl:variable name="common:reportId" visibility="abstract"/>

which doesn't have a body because it is abstract.

Actions #4

Updated by Michael Kay about 1 month ago

  • Status changed from New to Resolved
  • Priority changed from High to Normal
  • Applies to branch 11, 12, trunk added
  • Fix Committed on Branch 11, 12, trunk added
  • Platforms Java added

Please register to edit this issue

Also available in: Atom PDF