You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by "Mark D. Hansen" <m....@verizon.net> on 2004/12/01 19:49:14 UTC

RE: NPE from XSLT transformer based on a StreamSource

My appologies.  This is not a Xalan or Xerces problem, but a but in the Axis implemenation of SAAJ.

> -----Original Message-----
> From: Mark D. Hansen [mailto:m.hansen23@verizon.net]
> Sent: Tuesday, November 30, 2004 9:36 PM
> To: XALAN-J-USERS (E-mail)
> Subject: NPE from XSLT transformer based on a StreamSource
> 
> 
> A Xalan TransformerImpl invoked from within Tomcat Servlet is 
> throwing a NPE.  The Transformer is created using JAXP 
> factory from an XML String converted to a StreamSource.  
> Below, I have provided:
> * code that defines the Xalan TransformerImpl
> * code the throws the NPE
> * org.apache.xalan.xslt.EnvironmentCheck output
> * stack trace
> 
> Any help would be very much appreciated!  Thanks,  Mark
> 
> Here is the code that defines the Transformer that is giving 
> the NPE.  As you can see, the XSLT is defined as a String - 
> not a file.
> 
> // XSLT to format printing of raw XML - no spaces
> public static final String XSLT_RAW = "<?xml version=\"1.0\" 
> encoding=\"UTF-8\"?><xsl:stylesheet 
> xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" 
> version=\"1.0\"><xsl:output method=\"xml\" encoding=\"UTF-8\" 
> indent=\"no\"/><xsl:strip-space elements=\"*\"/><xsl:template 
> match=\"*\"><xsl:copy><xsl:copy-of 
> select=\"@*\"/><xsl:apply-templates/></xsl:copy></xsl:template
> ></xsl:stylesheet>";
>   TransformerFactory transFac = 
>   TransformerFactory.newInstance();
>   rawXformer = transFac.newTransformer
>    (new StreamSource(new ByteArrayInputStream(XSLT_RAW.getBytes())));
> 
> The following code throws the NPE:
> 
>     ByteArrayOutputStream out = new ByteArrayOutputStream();
>     StreamResult res = new StreamResult(out);
>     try {
> 	rawXformer.transform(new DOMSource(n), res);
>     } catch(TransformerException te) { ....
> 
> Initially, I thought this might be a bug from an old version 
> of Xalan, but I have installed the latest.  Here is the 
> output from org.apache.xalan.xslt.EnvironmentCheck: 
> 
> #---- BEGIN writeEnvironmentReport($Revision: 1.26 $): Useful 
> stuff found: ----
> version.DOM.draftlevel=2.0fd
> java.class.path=/usr/share/non-apt/jdk/lib/tools.jar:/usr/shar
e/java/tomcat/bin/bootstrap.jar:/usr/share/java/tomcat/bin/commons-logging-api.jar
> version.JAXP=1.1 or higher
> java.ext.dirs=/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/ext
> #---- BEGIN Listing XML-related jars in: 
> foundclasses.sun.boot.class.path ----
> xalan.jar-path=/usr/share/java/tomcat/common/endorsed/xalan.jar
> xercesImpl.jar-apparent.version=xercesImpl.jar from Xerces-J-bin.2.6.2
> xercesImpl.jar-path=/usr/share/java/tomcat/common/endorsed/xer
> cesImpl.jar
> xml-apis.jar-apparent.version=xml-apis.jar from 
> tck-jaxp-1_2_0 branch of xml-commons, tag: xml-commons-external_1_2_01
> xml-apis.jar-path=/usr/share/java/tomcat/common/endorsed/xml-apis.jar
> xsltc.jar-apparent.version=xsltc.jar present-unknown-version
> xsltc.jar-path=/usr/share/java/tomcat/common/endorsed/xsltc.jar
> #----- END Listing XML-related jars in: 
> foundclasses.sun.boot.class.path -----
> version.xerces2=Xerces-J 2.6.2
> version.xerces1=not-present
> version.xalan2_2=Xalan Java 2.6.0
> version.xalan1=not-present
> version.ant=Apache Ant version 1.6.1 compiled on February 12 2004
> java.version=1.4.2_05
> version.DOM=2.0
> version.crimson=present-unknown-version
> sun.boot.class.path=/usr/share/java/tomcat/common/endorsed/xal
> an.jar:/usr/share/java/tomcat/common/endorsed/xercesImpl.jar:/
> usr/share/java/tomcat/common/endorsed/xml-apis.jar:/usr/share/
java/tomcat/common/endorsed/xsltc.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/rt.jar:/usr/share/non-> apt/j2sdk1.4.2_05/jre/lib/i18n.jar:/usr/share/non-apt/j2sdk1.4
> .2_05/jre/lib/sunrsasign.jar:/usr/share/non-apt/j2sdk1.4.2_05/
> jre/lib/jsse.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/jce.
> jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/charsets.jar:/usr
> /share/non-apt/j2sdk1.4.2_05/jre/classes
> version.SAX=2.0
> version.xalan2x=Xalan Java 2.6.0
> #----- END writeEnvironmentReport: Useful properties found: -----
> # YAHOO! Your environment seems to be OK.
> 
> 
> Lastly, this is the stack trace from the NPE:
> 
> [http-8080-Processor25] ERROR com.javector.util.XMLUtil ; 
> Line#: 1; Column#: 286
> javax.xml.transform.TransformerException: 
> java.lang.NullPointerException
> 	at 
> org.apache.xalan.transformer.TransformerImpl.executeChildTempl
> ates(TransformerImpl.java:2341)
> 	at 
> org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.transformSelecte
> dNodes(ElemApplyTemplates.java:395)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemAppl
> yTemplates.java:177)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.executeChildTempl
> ates(TransformerImpl.java:2336)
> 	at 
> org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.transformSelecte
> dNodes(ElemApplyTemplates.java:395)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemAppl
> yTemplates.java:177)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.executeChildTempl
> ates(TransformerImpl.java:2336)
> 	at 
> org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.executeChildTempl
> ates(TransformerImpl.java:2336)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNo
> de(TransformerImpl.java:2202)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.transformNode(Tra
> nsformerImpl.java:1276)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.transform(Transfo
> rmerImpl.java:673)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.transform(Transfo
> rmerImpl.java:1192)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.transform(Transfo
> rmerImpl.java:1170)
> 	at com.javector.util.XMLUtil.domToString(XMLUtil.java:125)
> 	at com.javector.util.XMLUtil.domToString(XMLUtil.java:137)
> 	at 
> samples.chap5.oneway.PrintMessage.processMessage(PrintMessage.java:59)
> 	at 
> com.javector.ws.jaxrpc.JAXRPCOneWayService.unmarshalAndProcess
> (JAXRPCOneWayService.java:98)
> 	at 
> com.javector.ws.jaxrpc.axis.AxisOneWayService.onMessage(AxisOn
> eWayService.java:90)
> 	at 
> com.javector.ws.jaxrpc.axis.oneway.PrintMessageSOAPBindingSkel
> eton.onMessage(PrintMessageSOAPBindingSkeleton.java:66)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
> orImpl.java:39)
> 	at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
> odAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:324)
> 	at 
> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCPro
> vider.java:384)
> 	at 
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCP
> rovider.java:281)
> 	at 
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvide
> r.java:319)
> 	at 
> org.apache.axis.strategies.InvocationStrategy.visit(Invocation
> Strategy.java:32)
> 	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> 	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> 	at 
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
> 	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
> 	at 
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.
> java:653)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> 	at 
> org.apache.axis.transport.http.AxisServletBase.service(AxisSer
> vletBase.java:301)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:237)
> 	at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:157)
> 	at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:214)
> 	at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
> 	at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
> 	at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(S
> tandardContextValve.java:198)
> 	at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:152)
> 	at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
> 	at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
> 	at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:137)
> 	at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
> 	at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:117)
> 	at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:102)
> 	at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
> 	at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:109)
> 	at 
> org.apache.catalina.core.StandardValveContext.invokeNext(Stand
> ardValveContext.java:104)
> 	at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:520)
> 	at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> 	at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.
> java:160)
> 	at 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:799)
> 	at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConnection(Http11Protocol.java:705)
> 	at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi
> nt.java:577)
> 	at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:683)
> 	at java.lang.Thread.run(Thread.java:534)
> Caused by: java.lang.NullPointerException
> 	at 
> org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:387)
> 	at 
> org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.
> java:565)
> 	at 
> org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaul
> tBase.java:1142)
> 	at 
> org.apache.xpath.axes.ChildIterator.nextNode(ChildIterator.java:84)
> 	at 
> org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:280)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.transformSelecte
> dNodes(ElemApplyTemplates.java:280)
> 	at 
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemAppl
> yTemplates.java:177)
> 	at 
> org.apache.xalan.transformer.TransformerImpl.executeChildTempl
> ates(TransformerImpl.java:2336)
> 	... 61 more
>