You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by st...@apache.org on 2004/02/22 16:19:48 UTC
cvs commit: jakarta-pluto/container/src/java/org/apache/pluto PortletContainerImpl.java
sthepper 2004/02/22 07:19:48
Modified: container/src/java/org/apache/pluto
PortletContainerImpl.java
Log:
fixed bug 27042: integrated Ken's patch to factor out the redirect in a separate method
Revision Changes Path
1.4 +61 -54 jakarta-pluto/container/src/java/org/apache/pluto/PortletContainerImpl.java
Index: PortletContainerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-pluto/container/src/java/org/apache/pluto/PortletContainerImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PortletContainerImpl.java 17 Feb 2004 14:23:57 -0000 1.3
+++ PortletContainerImpl.java 22 Feb 2004 15:19:48 -0000 1.4
@@ -207,59 +207,7 @@
{
try
{
- if (location == null && _actionResponse != null)
- {
- DynamicInformationProvider provider = InformationProviderAccess.getDynamicProvider(servletRequest);
-
- //ToDo: don't send changes in case of exception -> PORTLET:SPEC:17
-
- // get the changings of this portlet entity that might be set during action handling
- // change portlet mode
- if (_actionResponse.getChangedPortletMode() != null)
- {
- InformationProviderAccess.getDynamicProvider(servletRequest)
- .getPortletActionProvider(portletWindow)
- .changePortletMode(_actionResponse.getChangedPortletMode());
- }
- // change window state
- if (_actionResponse.getChangedWindowState() != null)
- {
- InformationProviderAccess.getDynamicProvider(servletRequest)
- .getPortletActionProvider(portletWindow)
- .changePortletWindowState(_actionResponse.getChangedWindowState());
- }
- // get render parameters
- Map renderParameter = _actionResponse.getRenderParameters();
-
- PortletURLProvider redirectURL = provider.getPortletURLProvider(portletWindow);
-
- if (provider.getPortletMode(portletWindow)!=null)
- {
- redirectURL.setPortletMode(provider.getPortletMode(portletWindow));
- }
- if (provider.getWindowState(portletWindow)!=null)
- {
- redirectURL.setWindowState(provider.getWindowState(portletWindow));
- }
- // if (secure)
- // {
- // redirectURL.setSecure(); // TBD
- // }
- redirectURL.clearParameters();
- redirectURL.setParameters(renderParameter);
-
- //servletResponse.sendRedirect(servletResponse.encodeRedirectURL(redirectURL.toString()));
- location = servletResponse.encodeRedirectURL(redirectURL.toString());
- }
- //servletResponse.sendRedirect(location);
-
- javax.servlet.http.HttpServletResponse redirectResponse = servletResponse;
- while (redirectResponse instanceof javax.servlet.http.HttpServletResponseWrapper)
- {
- redirectResponse = (javax.servlet.http.HttpServletResponse)
- ((javax.servlet.http.HttpServletResponseWrapper)redirectResponse).getResponse();
- }
- redirectResponse.sendRedirect(location);
+ redirect(location, portletWindow, servletRequest, servletResponse, _actionResponse);
}
finally
{
@@ -307,4 +255,63 @@
return initialized;
}
+ protected void redirect(String location,
+ PortletWindow portletWindow,
+ HttpServletRequest servletRequest,
+ HttpServletResponse servletResponse,
+ InternalActionResponse _actionResponse)
+ throws IOException {
+ if (location == null && _actionResponse != null)
+ {
+ DynamicInformationProvider provider = InformationProviderAccess.getDynamicProvider(servletRequest);
+
+ //TODO: don't send changes in case of exception -> PORTLET:SPEC:17
+
+ // get the changings of this portlet entity that might be set during action handling
+ // change portlet mode
+ if (_actionResponse.getChangedPortletMode() != null)
+ {
+ InformationProviderAccess.getDynamicProvider(servletRequest)
+ .getPortletActionProvider(portletWindow)
+ .changePortletMode(_actionResponse.getChangedPortletMode());
+ }
+ // change window state
+ if (_actionResponse.getChangedWindowState() != null)
+ {
+ InformationProviderAccess.getDynamicProvider(servletRequest)
+ .getPortletActionProvider(portletWindow)
+ .changePortletWindowState(_actionResponse.getChangedWindowState());
+ }
+ // get render parameters
+ Map renderParameter = _actionResponse.getRenderParameters();
+
+ PortletURLProvider redirectURL = provider.getPortletURLProvider(portletWindow);
+
+ if (provider.getPortletMode(portletWindow)!=null)
+ {
+ redirectURL.setPortletMode(provider.getPortletMode(portletWindow));
+ }
+ if (provider.getWindowState(portletWindow)!=null)
+ {
+ redirectURL.setWindowState(provider.getWindowState(portletWindow));
+ }
+ // if (secure)
+ // {
+ // redirectURL.setSecure(); // TBD
+ // }
+ redirectURL.clearParameters();
+ redirectURL.setParameters(renderParameter);
+
+ location = servletResponse.encodeRedirectURL(redirectURL.toString());
+ }
+
+ javax.servlet.http.HttpServletResponse redirectResponse = servletResponse;
+ while (redirectResponse instanceof javax.servlet.http.HttpServletResponseWrapper)
+ {
+ redirectResponse = (javax.servlet.http.HttpServletResponse)
+ ((javax.servlet.http.HttpServletResponseWrapper)redirectResponse).getResponse();
+ }
+ redirectResponse.sendRedirect(location);
+
+ }
}