You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Alexander Klimetschek (JIRA)" <ji...@apache.org> on 2007/06/11 11:32:26 UTC

[jira] Updated: (COCOON-1964) Redirects inside a block called via the blocks protocol fail

     [ https://issues.apache.org/jira/browse/COCOON-1964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Klimetschek updated COCOON-1964:
------------------------------------------

    Priority: Critical  (was: Major)

Just to remind everyone: doing a redirect inside a called block and seeing it to fail is very critical IMHO. Should be fixed before 2.2 final.

Maybe a clean solution would be to implement BlockCallHttpResponse.sendRedirect() that forwards the redirect to the original request object.

> Redirects inside a block called via the blocks protocol fail
> ------------------------------------------------------------
>
>                 Key: COCOON-1964
>                 URL: https://issues.apache.org/jira/browse/COCOON-1964
>             Project: Cocoon
>          Issue Type: Bug
>          Components: - Servlet service framework
>    Affects Versions: 2.2-dev (Current SVN)
>            Reporter: Alexander Klimetschek
>            Priority: Critical
>         Attachments: cocoon-allow-redirect-in-called-block.patch
>
>
> If you do a redirect (from within a piece of flowscript "cocoon.redirectTo('cocoon:/foobar')" or via redirect-to in the sitemap) inside a block that was called via the block: protocol will fail since the re-use of the outputstream of the response (which happens to be a BlockCallHttpServletResponse) does not work.
> This is due to the use of getWriter() after getOutputStream() has already been called. The servlet api says that only one of them should be called, so there is a check in the implementation of getWriter() that will throw an IllegalStateException. The patch removes that check, which is kinda hack, but I don't know of any other cases within cocoon where such a re-use is made.
> The problem could be avoided if during the redirect a reset() or resetBuffer() would be called on the response, but for some reason this does not happen with a redirect from within a flowscript for a form.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.