DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15516>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15516

When using "xslTemplate.newTransformer();" throws NullPointerException during 
transformation

           Summary: When using "xslTemplate.newTransformer();" throws
                    NullPointerException during transformation
           Product: XalanJ2
           Version: 2.4
          Platform: Other
        OS/Version: AIX
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: org.apache.xalan
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


We get NullPointerException, when using XSL-Template in a multithread 
application. Platform: AIX with Java 1.3.1, 2 CPU, 8 threads.
On the other hand, we have a solution, that works fine but isn't conform with 
xalan API.

This first code example doesn't work very well. 
We got an error after ~10.000 transformations (different xml documents).
The error can be reproduced but not at the same transformation.

// using XSL Template
static private Templates template = null;
static private TransformerFactory tfactory = TransformerFactory.newInstance();
private Transformer trans = null;
// In the constructor of my class inherits from Thread
try { 
  trans = xslTemplate.newTransformer(); 
}
catch (TransformerConfigurationException e) {
  throw new SevereConverterException (...);
}

// in the run method during transformation we obtain:
ERROR Converter  - Converter.run: Error while converting XML --> FO in thread 
3844. No PDF will be output
; SystemID: file:///ixos/sw/onlstmt/programs/xsl/kredis2fo.xsl; Line#: 271; 
Column#: 102
javax.xml.transform.TransformerException: java.lang.NullPointerException
        at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java
(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java
(Compiled Code))
        at org.apache.xalan.templates.ElemCallTemplate.execute
(ElemCallTemplate.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java
(Compiled Code))
        at org.apache.xalan.templates.ElemCallTemplate.execute
(ElemCallTemplate.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at Converter.xslt(Converter.java(Compiled Code))
        at Converter.run(Converter.java(Compiled Code))
        at Converter.run(Converter.java(Compiled Code))
---------
java.lang.NullPointerException
        at org.apache.xpath.objects.XNodeSet.xstr(XNodeSet.java(Compiled Code))
        at org.apache.xpath.objects.XRTreeFragSelectWrapper.xstr
(XRTreeFragSelectWrapper.java(Compiled Code))
        at org.apache.xpath.objects.XObject.dispatchCharactersEvents
(XObject.java(Compiled Code))
        at org.apache.xpath.Expression.executeCharsToContentHandler
(Expression.java(Compiled Code))
        at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java
(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java
(Compiled Code))
        at org.apache.xalan.templates.ElemCallTemplate.execute
(ElemCallTemplate.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java
(Compiled Code))
        at org.apache.xalan.templates.ElemCallTemplate.execute
(ElemCallTemplate.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java(Compiled Code))
        at Converter.xslt(Converter.java(Compiled Code))
        at Converter.run(Converter.java(Compiled Code))
        at Converter.run(Converter.java(Compiled Code))

This code works without errors. 
But it should not work in multithread application (API):

static private Transformer trans = null; 
...
if (trans == null) {
try {
  trans = tfactory.newTransformer(new StreamSource(xslUrl));
}
catch (TransformerConfigurationException e) {
  throw new SevereConverterException(...);
}
}

In run () we use transform ()-method: No errors.

Regards,
Joachim Unger

Reply via email to