You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2011/10/14 15:27:50 UTC

svn commit: r1183349 - /sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java

Author: cziegeler
Date: Fri Oct 14 13:27:50 2011
New Revision: 1183349

URL: http://svn.apache.org/viewvc?rev=1183349&view=rev
Log:
Make sure to remove all attributes and keep javax. attributes when calling into the portlet

Modified:
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java?rev=1183349&r1=1183348&r2=1183349&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/services/DefaultPortletInvokerService.java Fri Oct 14 13:27:50 2011
@@ -178,12 +178,13 @@ public class DefaultPortletInvokerServic
                 final HttpServletResponse containerResponse = context.getContainerResponse();
 
                 try {
+                    containerRequest.setAttribute(ATTR_PORTLET, portletEntity);
                     containerRequest.setAttribute(Container.ATTR_CONTAINER, this);
                     containerRequest.setAttribute(PortletInvokerService.METHOD_ID, methodID);
                     containerRequest.setAttribute(PortletInvokerService.PORTLET_REQUEST, request);
                     containerRequest.setAttribute(PortletInvokerService.PORTLET_RESPONSE, response);
                     containerRequest.setAttribute(PortletInvokerService.FILTER_MANAGER, filterManager);
-                    containerRequest.setAttribute(ATTR_PORTLET, portletEntity);
+                    containerRequest.setAttribute(PortletInvokerService.PORTLET_CONFIG, context.getPortletConfig());
 
                     if (methodID.equals(PortletInvokerService.METHOD_RESOURCE)) {
                         dispatcher.forward(containerRequest, containerResponse);
@@ -217,10 +218,13 @@ public class DefaultPortletInvokerServic
 
                 } finally {
                     containerRequest.removeAttribute(ATTR_PROCESSED);
+                    containerRequest.removeAttribute(ATTR_PORTLET);
+                    containerRequest.removeAttribute(Container.ATTR_CONTAINER);
                     containerRequest.removeAttribute(PortletInvokerService.METHOD_ID);
                     containerRequest.removeAttribute(PortletInvokerService.PORTLET_REQUEST);
                     containerRequest.removeAttribute(PortletInvokerService.PORTLET_RESPONSE);
                     containerRequest.removeAttribute(PortletInvokerService.FILTER_MANAGER);
+                    containerRequest.removeAttribute(PortletInvokerService.PORTLET_CONFIG);
                 }
             } else {
                 throw new PortletException("Unable to retrieve portlet invoker dispatcher. Check if the container servlet is running in the portlet application.");
@@ -254,10 +258,8 @@ public class DefaultPortletInvokerServic
         final SlingPortletConfig portletConfig = info.getPortletConfig();
         final SlingPortletContext portletContext = info.getPortletContext();
 
-        // remove attributes
+        // remove attributes we don't want to pass to the portlet
         request.removeAttribute(PortletInvokerService.METHOD_ID);
-        request.removeAttribute(PortletInvokerService.PORTLET_REQUEST);
-        request.removeAttribute(PortletInvokerService.PORTLET_RESPONSE);
         request.removeAttribute(PortletInvokerService.FILTER_MANAGER);
         request.removeAttribute(ATTR_PORTLET);