jamesfredley commented on issue #13841: URL: https://github.com/apache/grails-core/issues/13841#issuecomment-5951586565
This is fixed on 8.0.x. `DefaultUrlMappingInfo.getActionName()` called `checkDispatchAction()`, which called `tryMultipartParams()` and then `MultipartResolver.resolveMultipart()` while URL mappings were matched, in addition to the dispatcher''s own `checkMultipart`. That call was removed in 611061e2 (https://github.com/apache/grails-core/pull/15565, 2026-04-08). That commit is in v8.0.0-M1, v8.0.0-M2, v8.0.0-M3, v8.0.0-M4, v8.0.0-M5, v8.0.0-M6, v8.0.0-RC1, and v8.0.0-RC2. The unused `tryMultipartParams` method, which contained `resolver.resolveMultipart(request)`, was deleted in 32b0d9f5 (https://github.com/apache/grails-core/pull/16149, 2026-08-14). That commit is in v8.0.0-RC1 and v8.0.0-RC2. Both commits are on current `origin/8.0.x` (`d13aa33282`). On that HEAD, `getActionName()` only evaluates the action name (`DefaultUrlMappingInfo.java` lines 193-196). `GrailsDispatcherServlet.checkMultipart` (`GrailsDispatcherServlet.groovy` lines 90-118) delegates to Spring once per dispatch and skips error, forward, and include requests. `WebUtils.resolveMultipartRequest` only finds a request that was already resolved. `GrailsDispatcherServletSpec` expects `multipartResolver.resolveMultipart` exactly once for a multipart request and zero times otherwise. The old path is still on `7.2.x` (`DefaultUrlMappingInfo.java` lines 206, 241, and 278). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
