You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2010/01/18 15:09:48 UTC

svn commit: r900398 - /sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java

Author: cziegeler
Date: Mon Jan 18 14:09:48 2010
New Revision: 900398

URL: http://svn.apache.org/viewvc?rev=900398&view=rev
Log:
Parameters should be encoded by standard encoding only.

Modified:
    sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java

Modified: sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java?rev=900398&r1=900397&r2=900398&view=diff
==============================================================================
--- sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java (original)
+++ sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/impl/DefaultPortalURLFactory.java Mon Jan 18 14:09:48 2010
@@ -125,7 +125,7 @@
         }
     }
 
-    private boolean appendParameter(final StringBuilder buffer,
+    private boolean appendSpecialParameter(final StringBuilder buffer,
                                     final String name,
                                     final String value,
                                     final boolean firstParam) {
@@ -140,6 +140,26 @@
         return false;
     }
 
+    private boolean appendParameter(final StringBuilder buffer,
+            final String name,
+            final String value,
+            final boolean firstParam) {
+        if ( firstParam ) {
+            buffer.append('?');
+        } else {
+            buffer.append('&');
+        }
+        buffer.append(name);
+        buffer.append('=');
+        try {
+            buffer.append(URLEncoder.encode(value, "UTF-8"));
+        } catch (UnsupportedEncodingException e) {
+            // this should never happen, but we gracefully append just the value
+            buffer.append(value);
+        }
+        return false;
+    }
+
     private boolean appendControlParameter(final StringBuilder buffer,
                                            final String name,
                                            final String key,
@@ -213,11 +233,11 @@
 
         // Append the resource window definition, if it exists.
         if (portalURL.getResourceWindow() != null){
-            firstParam = this.appendParameter(buffer, RESOURCE, portalURL.getResourceWindow(), firstParam);
+            firstParam = this.appendSpecialParameter(buffer, RESOURCE, portalURL.getResourceWindow(), firstParam);
         }
         // Append the action window definition, if it exists.
         if (portalURL.getActionWindow() != null) {
-            firstParam = this.appendParameter(buffer, ACTION, portalURL.getActionWindow(), firstParam);
+            firstParam = this.appendSpecialParameter(buffer, ACTION, portalURL.getActionWindow(), firstParam);
         }
 
         // Append portlet mode definitions.