[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