Author: chris.laprun(a)jboss.com
Date: 2008-10-16 22:05:06 -0400 (Thu, 16 Oct 2008)
New Revision: 12080
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletUtils.java
Log:
- If a window id has already been through the namespacing process, do not re-add prefix
and suffix
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletUtils.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletUtils.java 2008-10-17
01:05:49 UTC (rev 12079)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletUtils.java 2008-10-17
02:05:06 UTC (rev 12080)
@@ -22,13 +22,10 @@
******************************************************************************/
package org.jboss.portal.portlet.impl.jsr168;
-import org.jboss.portal.portlet.impl.jsr168.api.PortletRequestImpl;
-
import javax.portlet.PortletMode;
-import javax.portlet.WindowState;
import javax.portlet.PortletRequest;
-import javax.portlet.RenderRequest;
import javax.portlet.PortletResponse;
+import javax.portlet.WindowState;
import javax.portlet.filter.PortletRequestWrapper;
import javax.portlet.filter.PortletResponseWrapper;
@@ -104,25 +101,32 @@
*/
public static String generateNamespaceFrom(String windowId)
{
- StringBuffer tmp = new StringBuffer(PREFIX.length() + windowId.length() * 2);
- tmp.append(PREFIX);
- for (int i = 0; i < windowId.length(); i++)
+ if (windowId.startsWith(PREFIX) && windowId.endsWith(SUFFIX))
{
- char c = windowId.charAt(i);
- int charVal = c;
- if ((charVal >= 65 && charVal <= 90) || (charVal >= 97
&& charVal <= 122) || (charVal >=48 && charVal <= 57) || (charVal
== 95) || charVal == 36)
+ // we already have a namespaced window id
+ return windowId;
+ }
+ else
+ {
+ StringBuffer tmp = new StringBuffer(PREFIX.length() + windowId.length() * 2);
+ tmp.append(PREFIX);
+ for (int i = 0; i < windowId.length(); i++)
{
- tmp.append(c);
+ char c = windowId.charAt(i);
+ if (((int)c >= 65 && (int)c <= 90) || ((int)c >= 97
&& (int)c <= 122) || ((int)c >= 48 && (int)c <= 57) || ((int)c ==
95) || (int)c == 36)
+ {
+ tmp.append(c);
+ }
+ else
+ {
+ tmp.append('_');
+ tmp.append(Character.forDigit((((int)c) & 0XF0) >> 4, 16));
+ tmp.append(Character.forDigit((((int)c) & 0X0F), 16));
+ }
}
- else
- {
- tmp.append('_');
- tmp.append(Character.forDigit((((int)c) & 0XF0) >> 4, 16));
- tmp.append(Character.forDigit((((int)c) & 0X0F), 16));
- }
+ tmp.append(SUFFIX);
+ return tmp.toString();
}
- tmp.append(SUFFIX);
- return tmp.toString();
}
public static <U extends PortletRequest> U unwrap(PortletRequest wrapped,
Class<U> unwrapped)