Author: ate
Date: Tue Feb 20 19:32:10 2007
New Revision: 509876

URL: http://svn.apache.org/viewvc?view=rev&rev=509876
Log:
Small but important correction to the fix for JS2-605: Query string parameters 
should not (by default) be provided to portlets to be compliant to JSR 168 spec 
requirements
For ActionRequests, the portal parameters *must* be merged with the (usually 
not provided) portlet parameters.
Furthermore, in that situation, the portal (form) parameters should take 
precendence over PortletActionURL encoded parameters.

Modified:
    
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java

Modified: 
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java?view=diff&rev=509876&r1=509875&r2=509876
==============================================================================
--- 
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java
 (original)
+++ 
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/servlet/ServletRequestImpl.java
 Tue Feb 20 19:32:10 2007
@@ -142,11 +142,14 @@
             currentRequest = getRequest();            
             portletParameters = new HashMap();
 
+            boolean actionRequest = false;
+            
             // get portlet params
             JetspeedRequestContext context = (JetspeedRequestContext) 
getAttribute("org.apache.jetspeed.request.RequestContext");
             if (context != null)
             {
                 PortalURL url = context.getPortalURL();
+                actionRequest = context.getActionWindow() != null;
                 Iterator iter = 
url.getNavigationalState().getParameterNames(portletWindow);
                 while (iter.hasNext())
                 {
@@ -157,7 +160,7 @@
                 }
             }
             
-            if ( mergePortalParametersWithPortletParameters.booleanValue() )
+            if ( actionRequest || 
mergePortalParametersWithPortletParameters.booleanValue() )
             {
                 String encoding = (String) 
getRequest().getAttribute(PortalReservedParameters.PREFERED_CHARACTERENCODING_ATTRIBUTE);
                 boolean decode = 
getRequest().getAttribute(PortalReservedParameters.PARAMETER_ALREADY_DECODED_ATTRIBUTE)
 == null
@@ -193,7 +196,7 @@
                     if (values != null)
                     {
                         String[] temp = new String[paramValues.length + 
values.length];
-                        if ( 
this.mergePortalParametersBeforePortletParameters.booleanValue() )
+                        if ( actionRequest || 
this.mergePortalParametersBeforePortletParameters.booleanValue() )
                         {
                             System.arraycopy(paramValues, 0, temp, 0, 
paramValues.length);
                             System.arraycopy(values, 0, temp, 
paramValues.length, values.length);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to