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
>