You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by cz...@apache.org on 2006/12/14 09:35:27 UTC

svn commit: r487131 - /portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java

Author: cziegeler
Date: Thu Dec 14 00:35:26 2006
New Revision: 487131

URL: http://svn.apache.org/viewvc?view=rev&rev=487131
Log:
Fix for PLUTO-247: Only add ? and & to url if needed

Modified:
    portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java

Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java?view=diff&rev=487131&r1=487130&r2=487131
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java Thu Dec 14 00:35:26 2006
@@ -214,6 +214,7 @@
         
         // Append action and render parameters.
         StringBuffer query = new StringBuffer("?");
+        boolean firstParam = true;
         for (Iterator it = portalURL.getParameters().iterator();
         		it.hasNext(); ) {
             
@@ -223,7 +224,13 @@
             if (portalURL.getActionWindow() != null
             		&& portalURL.getActionWindow().equals(param.getWindowId())) {
                 for (int i = 0; i < param.getValues().length; i++) {
-                    query.append("&").append(encodeQueryParam(param.getName())).append("=")
+                    // FIX for PLUTO-247
+                    if ( firstParam ) {
+                        firstParam = false;
+                    } else {
+                        query.append("&");
+                    }
+                    query.append(encodeQueryParam(param.getName())).append("=")
                     		.append(encodeQueryParam(param.getValues()[i]));
                 }
             }
@@ -242,7 +249,12 @@
         }
         
         // Construct the string representing the portal URL.
-        return buffer.append(query).toString();
+        // Fix for PLUTO-247 - check if query string contains parameters
+        if ( query.length() > 1 ) {
+            return buffer.append(query).toString();
+        } else {
+            return buffer.toString();
+        }
     }
 
     private String encodeQueryParam(String param) {