The GitHub Actions job "Groovy Snapshot Canary Build" on 
grails-core.git/fix/15819-response-renderer-overloads has failed.
Run started by GitHub user ruthst00 (triggered by jamesfredley).

Head commit for run:
0d0ac73e33dd1e2241c8ee228a43ce32bc325861 / ruthes00 <[email protected]>
## Fix for Issue #15819: ResponseRenderer does not commit the HTTP response

**Root Cause:** Several `render()` branches in `ResponseRenderer.groovy` set 
`webRequest.renderView = false` and wrote content to the response, but never 
called `response.flushBuffer()`. This left the response uncommitted, causing 
Spring MVC's `DispatcherServlet` to attempt default view resolution after the 
action returned, resulting in a `ServletException: Could not resolve view with 
name '<actionName>'`.

**Fix:** Added `response.flushBuffer()` after content is written in every 
render branch that sets `renderView = false`:

1. `render(Object)` — after writing `object.inspect()`
2. `render(CharSequence)` — after writing and flushing the writer
3. `render(Map, Writable)` — after `renderWritable()`
4. `render(Map)` with `text:` (Writable) — after `renderWritable()`
5. `render(Map)` with `template:` — after all template rendering paths
6. `render(Map)` with `file:` — after `SpringIOUtils.copy()`
7. `renderMarkupInternal()` — after `renderWritable()` (covers 
`render(Closure)` and `render(Map, Closure)` markup path)
8. `renderJsonInternal()` — after `jsonBuilder.call()` (covers `render(Map, 
Closure)` JSON path)

The `render(Map)` with `status:` branch already had `response.flushBuffer()` — 
this fix brings all other content-writing branches into parity.

**Tests:** Added 10 new Spock feature methods to `ResponseRendererSpec` 
verifying that `response.isCommitted()` is `true` after each render variant. 
All 17 tests in the spec pass, the full `grails-controllers` test suite passes, 
and all violation reports (Checkstyle, CodeNarc, PMD, Repository Conventions) 
are clean.

Report URL: https://github.com/apache/grails-core/actions/runs/37225465257

With regards,
GitHub Actions via GitBox

Reply via email to