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;
       }
       // --------------------------------------------------------------------------------------------