Re: Limits on redirect length

Mark Thomas <[email protected]> Mon, 13 Apr 2026 13:39:20 +0100
Newsgroups gmane.comp.jakarta.tomcat.user
Message-ID <[email protected]>
On 13/04/2026 13:20, Stephen Booth wrote:
> Are there limits on redirect URL length when using the AJP connector?

There is a limit on the packetSize and the headers have to fit into a 
single packet. The default is 8k and it does indeed look like an attempt 
is being made to add a large header.

You can increase packetSize but you must do so on both sides of the 
connection and the values used must be the same.

Mark


> I can see response header length limits in the http connector but not an 
> equivalent for ajp.
> 
> I'm getting the following errors in the catalina log and I *think* these 
> are being triggered by a redirect to a URL with an excessively long get- 
> parameter
> 
>                                  Stephen
> 
> Apache Tomcat/9.0.115
> 
> 13-Apr-2026 12:48:53.361 SEVERE [ajp-nio-172.24.72.8-8009-exec-181] 
> org.apache.coyote.ajp.AjpMessage.checkOverflow Overflow error for buffer 
> adding [7867] bytes at position [365]
>          java.lang.ArrayIndexOutOfBoundsException
>                  at 
> org.apache.coyote.ajp.AjpMessage.checkOverflow(AjpMessage.java:226)
>                  at 
> org.apache.coyote.ajp.AjpMessage.appendBytes(AjpMessage.java:195)
>                  at 
> org.apache.coyote.ajp.AjpMessage.appendByteChunk(AjpMessage.java:181)
>                  at 
> org.apache.coyote.ajp.AjpMessage.appendBytes(AjpMessage.java:165)
>                  at 
> org.apache.coyote.ajp.AjpProcessor.prepareResponse(AjpProcessor.java:988)
>                  at 
> org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:376)
>                  at org.apache.coyote.Response.action(Response.java:202)
>                  at org.apache.coyote.Response.commit(Response.java:447)
>                  at 
> org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:284)
>                  at 
> org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:244)
>                  at 
> org.apache.catalina.connector.Response.finishResponse(Response.java:442)
>                  at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:373)
>                  at 
> org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:429)
>                  at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
>                  at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:939)
>                  at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1832)
>                  at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
>                  at 
> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
>                  at 
> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
>                  at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
>                  at java.base/java.lang.Thread.run(Thread.java:840)
> 
> 
> ======================================================================
> |epcc| Dr Stephen P Booth             Principal Architect       |epcc|
> |epcc| [email protected]          Phone 0131 650 5746       |epcc|
> ======================================================================