[ 
https://issues.apache.org/jira/browse/XALANJ-2527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13208442#comment-13208442
 ] 

Jörg Prante commented on XALANJ-2527:
-------------------------------------

This issue can happen in JDK 6  if an Attribute is created with SAX 
AttributeImpl addAttribute() method and a "type" string argument of null. In 
subsequent calls, when expressions like @* are evaluated, the attribute's type 
is used with getType() but without a null check and NPE will occur.

In JDK 6, there is no sanity check in AttributeImpl to prevent null types for 
attributes as it seems.

Fix: if no "type" for an attribute can be defined, always pass explicit "CDATA" 
as an addAttribute() "type" string argument, and override JDK6 
TransformerFactory with Xalan 2.7.1 for correct @* attribute evaluation.
                
> NPE during transforation - 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform
> -------------------------------------------------------------------------------------------------
>
>                 Key: XALANJ-2527
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2527
>             Project: XalanJ2
>          Issue Type: Bug
>      Security Level: No security risk; visible to anyone(Ordinary problems in 
> Xalan projects.  Anybody can view the issue.) 
>          Components: XSLTC
>            Reporter: Ondra Žižka
>         Attachments: Xslt.java, addJBossRepo.xsl, pom.xml
>
>
> This happens in Sun JDK 1.6.0, so perhaps it should go to JDK's issue tracker.
> STR:
> 1)  Get the attached source, compile it
> 2)  Get the other files
> 3)  Run `java Xslt pom.xml addJBossRepo.xsl pom2.xml`
>       You'll get the NPE.
> ondra@ondra-redhat: ~/work/hbn/runner/EAP-5.1/xslt $ java Xslt pom.xml 
> addJBossRepo.xsl pom2.xml
> export JAVA_HOME=/home/ondra/sw/tools/jdk/sun160_17
> Error: java.lang.NullPointerException
> Error during transformation
> javax.xml.transform.TransformerException: 
> com.sun.org.apache.xalan.internal.xsltc.TransletException: 
> java.lang.NullPointerException
>         at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:713)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
>         at Xslt.transform(Xslt.java:44)
>         at Xslt.main(Xslt.java:23)
> Caused by: com.sun.org.apache.xalan.internal.xsltc.TransletException: 
> java.lang.NullPointerException
>         at 
> com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.shallowCopy(SAXImpl.java:1743)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.shallowCopy(DOMAdapter.java:314)
>         at addJBossRepo.template$dot$3()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.template$dot$0()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.transform()
>         at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:602)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
>         ... 3 more
> ---------
> com.sun.org.apache.xalan.internal.xsltc.TransletException: 
> java.lang.NullPointerException
>         at 
> com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.shallowCopy(SAXImpl.java:1743)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.shallowCopy(DOMAdapter.java:314)
>         at addJBossRepo.template$dot$3()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.template$dot$0()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.applyTemplates()
>         at addJBossRepo.transform()
>         at 
> com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:602)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
>         at 
> com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
>         at Xslt.transform(Xslt.java:44)
>         at Xslt.main(Xslt.java:23)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscr...@xml.apache.org
For additional commands, e-mail: xalan-dev-h...@xml.apache.org

Reply via email to