Hi, We are running Tomcat 4.1.30. Our application sends back a HTTP 200 Status Code when we receive a request from our external Trading Partner. We encounter the following error intermittently (see below). Our application logs show that we have sucessfully written the message across the socket to our servlet. Is this a known issue with this version of Tomcat? java.lang.ArrayIndexOutOfBoundsException at org.apache.coyote.http11.InternalOutputBuffer.write (InternalOutputBuffer.java:731) at org.apache.coyote.http11.InternalOutputBuffer.write (InternalOutputBuffer.java:659) at org.apache.coyote.http11.InternalOutputBuffer.sendHeader (InternalOutputBuffer.java:539) at org.apache.coyote.http11.Http11Processor.prepareResponse (Http11Processor.java:1552) at org.apache.coyote.http11.Http11Processor.action (Http11Processor.java:921) at org.apache.coyote.Response.action(Response.java:224) at org.apache.coyote.http11.InternalOutputBuffer.endRequest (InternalOutputBuffer.java:431) at org.apache.coyote.http11.Http11Processor.action (Http11Processor.java:968) at org.apache.coyote.Response.action(Response.java:226) at org.apache.coyote.Response.finish(Response.java:348) at org.apache.coyote.tomcat4.OutputBuffer.close(OutputBuffer.java:324) at org.apache.coyote.tomcat4.CoyoteOutputStream.close (CoyoteOutputStream.java:123) at com.sterlingcommerce.woodstock.services.b2bhttp.servlet.B2BHttpServlet.doPost (B2BHttpServlet.java:1051) 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:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNe xt(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) 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.invokeNe xt(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke (CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNe xt(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNe xt(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNe xt(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNe xt(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) 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.invokeNe xt(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti on(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt (PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:683) at java.lang.Thread.run(Thread.java:479) [ERROR] Http11Processor - -Error finishing response <java.lang.ArrayIndexOutOfBoundsException>java.lang.ArrayIndexOutOfBoundsExcept ion at org.apache.coyote.http11.InternalOutputBuffer.write (InternalOutputBuffer.java:731) at org.apache.coyote.http11.InternalOutputBuffer.sendStatus (InternalOutputBuffer.java:471) at org.apache.coyote.http11.Http11Processor.prepareResponse (Http11Processor.java:1548) at org.apache.coyote.http11.Http11Processor.action (Http11Processor.java:921) at org.apache.coyote.Response.action(Response.java:224) at org.apache.coyote.http11.InternalOutputBuffer.endRequest (InternalOutputBuffer.java:431) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:865) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti on(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt (PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:683) at java.lang.Thread.run(Thread.java:479)
It happens when the maximum http header size is exceeded. For Tomcat 4.1.31 (and the latest 5.0.x and 5.5.x releases) the maxHttpHeaderSize attribute on the http connector may be used to set the maximum allowed size of http headers.