You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Ondra Žižka (JIRA)" <xa...@xml.apache.org> on 2010/12/03 20:33:10 UTC

[jira] Created: (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

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.)
            Reporter: Ondra Žižka


This happens in Sun JDK 1.6.0_22, 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.
-
You can reply to this email to add a comment to the issue online.


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


Re: [jira] [Commented] (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

Posted by ke...@us.ibm.com.
> AttributeImpl is a helper class in SAX. Its addAttribute() method is 
namespace-aware. 


Sorry; missed that. Good.

(I've spent too much time educating people about this since DOM2 came out; 
it's an automatic playback trigger. Sigh.)

______________________________________
"You build world of steel and stone
I build worlds of words alone
Skilled tradespeople, long years taught:
You shape matter; I shape thought."
(http://www.songworm.com/lyrics/songworm-parody/ShapesofShadow.html)

Re: [jira] [Commented] (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
AttributeImpl is a helper class in SAX. Its addAttribute() method is
namespace-aware.

Michael Glavassevich
XML Technologies and WAS Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org

keshlam@us.ibm.com wrote on 02/15/2012 09:35:23 AM:

> > This issue can happen in JDK 6  if an Attribute is created with SAX
> > AttributeImpl addAttribute() method and a "type" string argument of
>
> Quick reminder: NOBODY should still be using the addAttribute()
> method unless you are explicitly writing DOM 1.0 code. It is not
> interoperable with DOM 2.0. Use addAttributeNS().
>
> (Probably orthogonal to this discussion, but people keep making this
> mistake so it's worth re-emphasizing.)

Re: [jira] [Commented] (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

Posted by ke...@us.ibm.com.
> This issue can happen in JDK 6  if an Attribute is created with SAX 
> AttributeImpl addAttribute() method and a "type" string argument of 

Quick reminder: NOBODY should still be using the addAttribute() method 
unless you are explicitly writing DOM 1.0 code. It is not interoperable 
with DOM 2.0. Use addAttributeNS().

(Probably orthogonal to this discussion, but people keep making this 
mistake so it's worth re-emphasizing.)

[jira] [Commented] (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

Posted by "Jörg Prante (Commented JIRA)" <xa...@xml.apache.org>.
    [ 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-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org


[jira] [Commented] (XALANJ-2527) NPE during transforation - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform

Posted by "Jörg Prante (Commented JIRA)" <xa...@xml.apache.org>.
    [ https://issues.apache.org/jira/browse/XALANJ-2527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13208068#comment-13208068 ] 

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

This is an NPE due to the attribute wildcarding @* in expressions like <xsl:apply-templates select="@*|node()" />
A workaround - not always possible - is to replace @* with a known set of attribute names, like @a1|@a2|...
                
> 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-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org