Author: chris.laprun(a)jboss.com
Date: 2009-01-05 19:07:33 -0500 (Mon, 05 Jan 2009)
New Revision: 12428
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java
Log:
- JBPORTAL-2270: check that we have properties before trying to manipulate them...
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java 2009-01-06
00:05:19 UTC (rev 12427)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/controller/portlet/ControllerResponseFactory.java 2009-01-06
00:07:33 UTC (rev 12428)
@@ -26,13 +26,14 @@
import org.jboss.portal.WindowState;
import org.jboss.portal.common.FixMe;
import org.jboss.portal.common.NotYetImplemented;
+import org.jboss.portal.common.util.MultiValuedPropertyMap;
import org.jboss.portal.core.controller.ControllerResponse;
import org.jboss.portal.core.controller.command.response.ErrorResponse;
import org.jboss.portal.core.controller.command.response.RedirectionResponse;
import org.jboss.portal.core.controller.command.response.SecurityErrorResponse;
import org.jboss.portal.core.controller.command.response.SignOutResponse;
+import org.jboss.portal.core.controller.command.response.StreamContentResponse;
import org.jboss.portal.core.controller.command.response.UnavailableResourceResponse;
-import org.jboss.portal.core.controller.command.response.StreamContentResponse;
import
org.jboss.portal.core.model.instance.command.response.PortletInstanceActionResponse;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.command.response.PortletWindowActionResponse;
@@ -41,17 +42,16 @@
import org.jboss.portal.portlet.ParametersStateString;
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.info.ParameterInfo;
+import org.jboss.portal.portlet.invocation.response.ContentResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.invocation.response.ResponseProperties;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
-import org.jboss.portal.portlet.invocation.response.ContentResponse;
import java.io.ByteArrayInputStream;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
-import javax.xml.namespace.QName;
-
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision$
@@ -75,7 +75,7 @@
{
if (response instanceof UpdateNavigationalStateResponse)
{
- UpdateNavigationalStateResponse renderResult =
(UpdateNavigationalStateResponse)response;
+ UpdateNavigationalStateResponse renderResult =
(UpdateNavigationalStateResponse)response;
//
Mode mode = renderResult.getMode();
@@ -84,28 +84,28 @@
WindowState windowState = renderResult.getWindowState();
ParametersStateString state =
(ParametersStateString)renderResult.getNavigationalState();
-
+
Map<String, String[]> parameters = new HashMap<String,
String[]>(state.getParameters());
if (pns != null)
{
-
- //
- for (ParameterInfo parameterInfo :
portletInfo.getNavigation().getPublicParameters())
- {
- String key = parameterInfo.getId();
- //
- String[] values = pns.getParameter(parameterInfo.getName());
+ //
+ for (ParameterInfo parameterInfo :
portletInfo.getNavigation().getPublicParameters())
+ {
+ String key = parameterInfo.getId();
- //
- if (values != null)
- {
- parameters.put(key, values);
- }
- }
+ //
+ String[] values = pns.getParameter(parameterInfo.getName());
+
+ //
+ if (values != null)
+ {
+ parameters.put(key, values);
+ }
+ }
}
-
+
return new PortletWindowActionResponse(targetId, windowState, mode,
ParametersStateString.create(parameters));
}
else
@@ -118,7 +118,7 @@
{
if (response instanceof UpdateNavigationalStateResponse)
{
- UpdateNavigationalStateResponse renderResult =
(UpdateNavigationalStateResponse)response;
+ UpdateNavigationalStateResponse renderResult =
(UpdateNavigationalStateResponse)response;
//
return new PortletInstanceActionResponse(instanceId, null, null,
renderResult.getNavigationalState());
@@ -163,22 +163,29 @@
ContentResponse contentResponse = (ContentResponse)response;
//
- if (contentResponse.getType() == ContentResponse.TYPE_EMPTY)
+ int type = contentResponse.getType();
+ if (type == ContentResponse.TYPE_EMPTY)
{
- throw new NotYetImplemented("todo");
+ throw new NotYetImplemented("handling of empty ContentResponse");
}
else
{
String contentType = contentResponse.getContentType();
//
- if (contentResponse.getType() == ContentResponse.TYPE_BYTES)
+ ResponseProperties properties = contentResponse.getProperties();
+ MultiValuedPropertyMap<String> headers = null;
+ if (properties != null)
{
- return new StreamContentResponse(contentType,
contentResponse.getProperties().getTransportHeaders(), new
ByteArrayInputStream(contentResponse.getBytes()));
+ headers = properties.getTransportHeaders();
}
+ if (type == ContentResponse.TYPE_BYTES)
+ {
+ return new StreamContentResponse(contentType, headers, new
ByteArrayInputStream(contentResponse.getBytes()));
+ }
else
{
- return new StreamContentResponse(contentType,
contentResponse.getProperties().getTransportHeaders(), new
StringReader(contentResponse.getChars()));
+ return new StreamContentResponse(contentType, headers, new
StringReader(contentResponse.getChars()));
}
}
}
Show replies by date