On Thu, Jan 8, 2026 at 11:17 AM Mark Thomas <[email protected]> wrote: > > On 07/01/2026 19:45, Nelson Page via users wrote: > > Hi all - > > > > First time mailing on this list, please let me know what I can improve. > > > > I've run into a case where > > org.apache.catalina.connector.Request.getParameter("some_parameter") > > no longer results in the parameters getting parsed. > > > > We're on tomcat 9.0.107, using HTTP/2, the `content-length` header is > > not being set, the `content-type` header is set to > > `application/x-www-form-urlencoded`, and the HTTP method is `POST`. > > > > So I think what happens is in > > https://github.com/apache/tomcat/blob/9.0.x/java/org/apache/catalina/connector/Request.java#L3094 > > the `len` variable is set to -1, and we fall out in the `if` statement > > below it. > > > > Is this expected behavior? > > No. > > I'd need to write a test case to confirm the behaviour but that looks > like a bug. > > HTTP/2 requests are not required to provide a content-length since the > HTTP/2 framing defines where the body (if any) ends. > > The fix is probably changing "...else if chunked..." to "...else if > chunked or HTTP/2..." > > We should be able to fix this for the January releases (they are a > little behind the usual schedule as we need to get some Tomcat Native > releases completed first). > > If you (or anyone else) wanted to help this along any of the following > would help. Ideally, we'd have all of these in this order but any help > with any of them would be useful. > > 1. A bug for this in Bugzilla (Tomcat version isn't that important). > > 2. A test case attached to the BZ issue in the form of a patch to the > Tomcat unit tests that demonstrates the issue. There should be examples > of all the parts required in the existing tests cases. This should > mostly be copy/paste. A GitHub PR also works. > > 3. A patch (or pull request) that fixes the issue and causes the test > case in 2 to pass.
It's not a regression though: https://github.com/apache/tomcat/commit/19aada70628d49cf8ff1b0230cd87ec289d5c592 added POST support for chunked, but it previously always required a > 0 content length (since it's a much simpler and more efficient scenario). So I disagree with the statement that it "no longer results in the parameters getting parsed" since this was never implemented. Rémy --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
