Bug 34299 - Http11Processor intermittently throwing ArrayIndexOutOfBoundsException
Summary: Http11Processor intermittently throwing ArrayIndexOutOfBoundsException
Status: RESOLVED INVALID
Alias: None
Product: Tomcat 4
Classification: Unclassified
Component: Connector:Coyote HTTP/1.1 (show other bugs)
Version: Unknown
Hardware: PC other
: P1 normal (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-05 11:57 UTC by Terence Thambi Rajah
Modified: 2005-04-10 15:00 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Terence Thambi Rajah 2005-04-05 11:57:31 UTC
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)
Comment 1 Mark Thomas 2005-04-10 23:00:32 UTC
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.