Details
-
Bug
-
Resolution: Done
-
Critical
-
JWS 3.0.2 GA
-
None
-
Release Notes
-
Documented as Resolved Issue
-
Workaround Exists
-
-
Description
JWS 3 Tomcat does not reset its request buffer position to 0 in between each request. Thus the buffer gets smaller and smaller with each request until there's no space for headers, resulting in a 400 from:
java.lang.IllegalArgumentException: Request header is too large at org.apache.coyote.http11.InternalInputBuffer.fill(Unknown Source) at org.apache.coyote.http11.InternalInputBuffer.fill(Unknown Source) at org.apache.coyote.http11.InternalInputBuffer.parseHeader(Unknown Source) at org.apache.coyote.http11.InternalInputBuffer.parseHeaders(Unknown Source) at org.apache.coyote.http11.AbstractHttp11Processor.process(Unknown Source) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Unknown Source) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(Unknown Source) at java.lang.Thread.run(Thread.java:745)
Looks like we missed the fix from this upstream revision:
r1658209 | markt | 2015-02-08 11:53:26 -0500 (Sun, 08 Feb 2015) | 2 lines Follow-up to r1657910 Always reset pos to zero before next request.