[
https://issues.apache.org/jira/browse/PLUTO-507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Craig Doremus closed PLUTO-507.
-------------------------------
Resolution: Fixed
Patch applied in SVN rev 702808 and 702809 to trunk and 2.0-refactoring branch.
> PortalDriverFilter doesn't handle action requests properly, throws
> IllegalStateException
> ----------------------------------------------------------------------------------------
>
> Key: PLUTO-507
> URL: https://issues.apache.org/jira/browse/PLUTO-507
> Project: Pluto
> Issue Type: Bug
> Components: portal driver
> Affects Versions: 2.0.0, 2.0-refactoring
> Environment: JDK 1.5.0_16, Tomcat 5.5.27
> Reporter: Brian DeHamer
> Fix For: 2.0.0, 2.0-refactoring
>
> Attachments: patch-507.txt
>
>
> Action requests targeted at a portlet which is rendered via the
> PortalDriverFilter are not handled properly. The PortalDriverFilter should
> return immediately after handling an incoming action request since the end
> result of an action request is to issue a redirect to the client's browser.
> As currently implemented, the PortalDriverFilter does NOT return after an
> action request resulting in the following exception:
> java.lang.IllegalStateException: Cannot forward after response has been
> committed
>
> org.apache.pluto.driver.PortalDriverFilter.doFilter(PortalDriverFilter.java:125)
> There is logic in the PortalDriverFilter that attempts to determine if the
> current request is an action request and will immediately return if an action
> request is detected; however, the logic that is being used to test for an
> action request is incorrect.
> The following block of code is used to detect an action request (lines
> 110-113)
> PortalURL url = ctx.getRequestedPortalURL();
> if (url.getActionWindow() != null) {
> return;
> }
> Note that the call to getActionWindow() will ALWAYS return null after an
> action request has been handled (there is logic in the PortletContainerImpl
> that sets this value to null during the processing of the action request).
> Since getActionWindow() always returns null, the return statement is never
> executed. The subsequent invocation of the forward() method on the
> RequestDispatcher() (line 125) causes the IllegalStateException since a
> redirect has already been sent to the client.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.