[prev in list] [next in list] [prev in thread] [next in thread]
List: xerces-j-user
Subject: NPE from XSLT transformer based on a StreamSource
From: "Mark D. Hansen" <m.hansen23 () verizon ! net>
Date: 2004-11-30 18:21:56
Message-ID: 64EE0DBA15556341AF577C102564465D09D6D3 () admin-server ! javector ! com
[Download RAW message or body]
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/share/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/xercesImpl.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/xalan.jar:/usr/share/java/t \
omcat/common/endorsed/xercesImpl.jar:/usr/share/java/tomcat/common/endorsed/xml-apis.j \
ar:/usr/share/java/tomcat/common/endorsed/xsltc.jar:/usr/share/non-apt/j2sdk1.4.2_05/j \
re/lib/rt.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/i18n.jar:/usr/share/non-apt/j2s \
dk1.4.2_05/jre/lib/sunrsasign.jar:/usr/share/non-apt/j2sdk1.4.2_05/jre/lib/jsse.jar:/u \
sr/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.executeChildTemplates(TransformerImpl.java:2341)
at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:115)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2202)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1276)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:673)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1192)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.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(AxisOneWayService.java:90)
at com.javector.ws.jaxrpc.axis.oneway.PrintMessageSOAPBindingSkeleton.onMessage(PrintMessageSOAPBindingSkeleton.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.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(AxisServletBase.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.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(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.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(DTMDefaultBase.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.transformSelectedNodes(ElemApplyTemplates.java:280)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:177)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2336)
... 61 more
---------
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic