Rémy - good point, my context was switching from HTTP/1.1 to HTTP/2 but forgot to mention that.
Thanks, Nelson On Thu, Jan 8, 2026 at 2:53 AM Rémy Maucherat <[email protected]> wrote: > > 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] > -- This email, including its contents and any attachment(s), may contain confidential and/or proprietary information and is solely for the review and use of the intended recipient(s). If you have received this email in error, please notify the sender and permanently delete this email, its content, and any attachment(s). Any disclosure, copying, or taking of any action in reliance on an email received in error is strictly prohibited. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
