You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Robin Wyles (JIRA)" <ji...@apache.org> on 2008/07/09 12:57:31 UTC
[jira] Updated: (COCOON-2218) Unable to set response code of 404 in
map:handle-errors
[ https://issues.apache.org/jira/browse/COCOON-2218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robin Wyles updated COCOON-2218:
--------------------------------
Attachment: status-test.zip
Block demonstrating this issue. See issue description for usage.
> Unable to set response code of 404 in map:handle-errors
> -------------------------------------------------------
>
> Key: COCOON-2218
> URL: https://issues.apache.org/jira/browse/COCOON-2218
> Project: Cocoon
> Issue Type: Bug
> Components: * Cocoon Core, - Components: Sitemap, - Servlet service framework
> Affects Versions: 2.2-dev (Current SVN)
> Reporter: Robin Wyles
> Attachments: status-test.zip
>
>
> When an exception is thrown in a pipeline matcher, setting the response status code to 404 has no effect. A 200 is still returned.
> Attached is a block illustrating this issue, run it with "mvn cocoon:prepare jetty:run", and call the following urls:
> http://localhost:8888/status-test/matcher-not-found
> Action: Calls a pattern that is not matched by any matcher in the sitemap. A ResourceNotFoundException is thrown and is handled by map:handle-errors which sets the status to 404.
> Result: 404 status code is correctly returned.
> http://localhost:8888/status-test/404
> Action: Calls a matcher that reads a file, and serializes it setting the response code to 404. No error is thrown, we are simply setting a 404 in a matcher.
> Result: 404 status code is correctly returned.
> http://localhost:8888/status-test/file-not-found
> Action: Calls a matcher that tries to read a non-existent file. A FileNotFoundException is thrown by the generator inside the matcher and is handled by map:handle-errors which sets the status to 404.
> Result: 200 status code is incorrectly returned.
> Please note that this issue only occurs when setting the status to 404, all other status codes seem to be handled correctly.
> I've spent quite a while trying to debug this issue but I can't see the problem, in all cases it looks like the correct status is finally set by org.apache.cocoon.servletservice.HttpServletResponseBufferingWrapper.flushBufferedResponse.
> I tried the suggestions given at http://www.mail-archive.com/users@cocoon.apache.org/msg42494.html but this had no effect.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.