The GitHub Actions job "JMH Benchmark Comparison" on grails-core.git/perf/request-path-8.0.x has succeeded. Run started by GitHub user codeconsole (triggered by codeconsole).
Head commit for run: c25aaaa66abb6bf1beda9d9eeb9dbde802b63a18 / Scott Murphy Heiberg <[email protected]> fix: let an application see a dispatcher-resolved method override FileUploadSpec caught this: a multipart upload carrying _method=PUT bound its file and reached the update action, but the controller's request still reported POST. The override reached routing and allowedMethods and stopped there. Which mode applied the override decided what an application saw. The servlet filter wraps the request before GrailsWebRequestFilter binds it, so the request reports the overridden method; the dispatcher resolves it afterwards, and until now had no way to change the request already bound. The same form against the same application answered differently depending on a configuration flag. GrailsWebRequest takes the wrapper the dispatcher publishes and returns it from getCurrentRequest(), which is what an application reads through. The wrapper delegates to the request beneath it rather than replacing it, so wrappers contributed by other filters survive - the substitution that was removed for multipart replaced the chain, which is a different thing. getCurrentRequest() is therefore no longer a pass-through and no longer deprecated, and ServletAttributes resolves through it again. Upgrade note 54.4 is rewritten accordingly: the multipart substitution is still gone, which was the point of removing it. Report URL: https://github.com/apache/grails-core/actions/runs/33336522977 With regards, GitHub Actions via GitBox
