Author: cziegeler
Date: Mon Nov 9 11:00:26 2009
New Revision: 834016
URL: http://svn.apache.org/viewvc?rev=834016&view=rev
Log:
Don't throw NPE if filter is not enabled, wrap request to get context
dispatcher.
Modified:
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java
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/DefaultPortletWindowManager.java
URL:
http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java?rev=834016&r1=834015&r2=834016&view=diff
==============================================================================
---
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java
(original)
+++
sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/DefaultPortletWindowManager.java
Mon Nov 9 11:00:26 2009
@@ -79,6 +79,10 @@
return null;
}
final PortalRequestContext prc = PortalRequestContext.getContext();
+ if ( prc == null ) {
+ LOGGER.error("Portlet filter is not enabled.");
+ return null;
+ }
final PortletMode portletMode =
prc.getRequestedPortalURL().getPortletMode(windowId.getStringId());
final WindowState windowState =
prc.getRequestedPortalURL().getWindowState(windowId.getStringId());
return new PortletWindowImpl(info,
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=834016&r1=834015&r2=834016&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
Mon Nov 9 11:00:26 2009
@@ -34,6 +34,7 @@
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import org.apache.pluto.container.FilterManager;
@@ -261,7 +262,7 @@
request.removeAttribute(ATTR_PORTLET);
// initialize
- requestContext.init(portletConfig, portletContext.getServletContext(),
request, response);
+ requestContext.init(portletConfig, portletContext.getServletContext(),
new RequestWrapper(request, portletContext.getServletContext()), response);
responseContext.init(request, response);
// The requested method is RENDER: call Portlet.render(..)
@@ -306,4 +307,19 @@
}
request.setAttribute(ATTR_PROCESSED, Boolean.TRUE);
}
+
+ public static final class RequestWrapper extends HttpServletRequestWrapper
{
+
+ private final ServletContext servletContext;
+
+ public RequestWrapper(HttpServletRequest request, final ServletContext
sc) {
+ super(request);
+ this.servletContext = sc;
+ }
+
+ @Override
+ public RequestDispatcher getRequestDispatcher(String path) {
+ return this.servletContext.getRequestDispatcher(path);
+ }
+ }
}
\ No newline at end of file