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 2003/12/09 21:15:06 UTC
cvs commit: jakarta-pluto/src/container/org/apache/pluto/core/impl PortletResponseImpl.java
sthepper 2003/12/09 12:15:06
Modified: src/container/org/apache/pluto/core/impl
PortletResponseImpl.java
Log:
fix for bug 25323 (PortletResponseImpl.set/addProperty is broken)
Revision Changes Path
1.4 +24 -24 jakarta-pluto/src/container/org/apache/pluto/core/impl/PortletResponseImpl.java
Index: PortletResponseImpl.java
===================================================================
RCS file: /home/cvs/jakarta-pluto/src/container/org/apache/pluto/core/impl/PortletResponseImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PortletResponseImpl.java 14 Nov 2003 10:15:33 -0000 1.3
+++ PortletResponseImpl.java 9 Dec 2003 20:15:06 -0000 1.4
@@ -89,6 +89,7 @@
private boolean usingStream;
private ServletOutputStream wrappedWriter;
+ private Map properties;
public PortletResponseImpl(PortletWindow portletWindow,
javax.servlet.http.HttpServletRequest servletRequest,
@@ -108,26 +109,25 @@
throw new IllegalArgumentException("Property key == null");
}
- // get properties from PropertyManager
- Map map = PropertyManager.getRequestProperties(portletWindow, this.getHttpServletRequest());
- if (map == null)
+ Map props = getProperties();
+
+ String[] oldValues = (String[]) props.get(key);
+ String[] newValues = null;
+ if (oldValues == null)
{
- map = new HashMap();
- }
-
- String[] properties = (String[]) map.get(key);
- if (properties == null)
- {
- properties = new String[]{value};
+ newValues = new String[]{value};
}
else
{
- properties[properties.length] = value;
+ int len = oldValues.length;
+ newValues = new String[len+1];
+ System.arraycopy(oldValues, 0, newValues, 0, len);
+ newValues[len] = value;
}
+ props.put(key, newValues);
- map.put(key, properties);
+ PropertyManager.setResponseProperties(portletWindow, this.getHttpServletRequest(), _getHttpServletResponse(), props);
- PropertyManager.setResponseProperties(portletWindow, this.getHttpServletRequest(), _getHttpServletResponse(), map);
}
public void setProperty(String key, String value)
@@ -137,18 +137,12 @@
throw new IllegalArgumentException("Property key == null");
}
- // get properties from PropertyManager
- Map map = PropertyManager.getRequestProperties(portletWindow, this.getHttpServletRequest());
- if (map == null)
- {
- map = new HashMap();
- }
+ Map props = getProperties();
+
+ String[] newValues = new String[]{value};
+ props.put(key, newValues);
- String[] properties = new String[]{value};
-
- map.put(key, properties);
-
- PropertyManager.setResponseProperties(portletWindow, getHttpServletRequest(), _getHttpServletResponse(), map);
+ PropertyManager.setResponseProperties(portletWindow, this.getHttpServletRequest(), _getHttpServletResponse(), props);
}
public String encodeURL(String path)
@@ -188,6 +182,12 @@
protected javax.servlet.http.HttpServletRequest getHttpServletRequest()
{
return webModuleServletRequest;
+ }
+
+ private Map getProperties() {
+ if (properties == null)
+ properties = new HashMap();
+ return properties;
}
// --------------------------------------------------------------------------------------------