Hi,
I am load testing a webapp running on Tomcat 5.5.12 (windoze). Once in a
while I see the following in Tomcat's log:
SEVERE: Servlet.service() for servlet StatusServlet threw exception
java.lang.NullPointerException
at
org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:403)
at
org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:305)
at
org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:990)
at org.apache.coyote.Response.action(Response.java:182)
at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
at
org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.Response.flushBuffer(Response.java:544)
at
org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:276)
at com.eviltwin.servermanager.BaseServlet.processRequest(Unknown Source)
at
com.eviltwin.servermanager.envserver.StatusServlet.processRequest(Unknown
Source)
at com.eviltwin.servermanager.BaseServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Looking at Tomcat's source code, it appears outputStream is null in
InternalOutputBuffer. I have the following code that runs once per request:
processRequest()
{
///other work
finally{
request.getWriter().println(someString); //can be up to 200-300
chars long
request.getWriter().close();
}
}
Could someone please explain:
-Why is this NPE happening?
- Is it occurring during println() or close() (or somewhere else)?
-Any workaround / solution?
thanks a lot
-nikita
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]