users@jax-rpc.java.net

Re: Document root element is missing & 100% CPU

From: Ted o Donovan <ted.odonovan_at_ECET.COM>
Date: Fri, 06 Dec 2002 02:43:50 -0700

Hello,

As nobody replied to the previous email sent, I will have to try again. We upgraded to WS 1.0_01, and are still getting this problem.

Tomcat starts firing at 100% cpu usage and so the machine itself becomes unusable until tomcat is restarted. It is happening in suns jax-rpc code and you will find the stack below.

It would be much appreciated if someone in sun would be able to take a look at this as it make jax-rpc compltely unmanagable if a truncated xml request comes in and it hogs cpu usage like that.

Note that our client is a c# client.

XML parsing error: com.sun.xml.rpc.sp.ParseException:1: Document root element is missing
 at com.sun.xml.rpc.streaming.XMLReaderImpl.next(XMLReaderImpl.java:110)
 at com.sun.xml.rpc.streaming.XMLReaderBase.nextContent(XMLReaderBase.java:23)
 at com.sun.xml.rpc.streaming.XMLReaderBase.nextElementContent(XMLReaderBase.java:41)
 at com.sun.xml.rpc.server.StreamingHandler.handle(StreamingHandler.java:99)
 at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doPost(JAXRPCServletDelegate.java:280)
 at com.sun.xml.rpc.server.http.JAXRPCServlet.doPost(JAXRPCServlet.java:69)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)
 at java.lang.Thread.run(Thread.java:536)

Regards,
T.