Author: mgrigorov
Date: Wed Feb 16 14:50:48 2011
New Revision: 1071275

URL: http://svn.apache.org/viewvc?rev=1071275&view=rev
Log:
PageParameters.add() works with java.lang.Object for the value.
Some apps from 1.4 (jolira's stateless components) passed String[] as value and 
it properly parsed all values. 
Fix this to work in 1.5 as well.


Modified:
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java

Modified: 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java?rev=1071275&r1=1071274&r2=1071275&view=diff
==============================================================================
--- 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
 (original)
+++ 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParameters.java
 Wed Feb 16 14:50:48 2011
@@ -18,6 +18,7 @@ package org.apache.wicket.request.mapper
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -374,17 +375,31 @@ public class PageParameters implements S
                {
                        namedParameters = new ArrayList<Entry>(1);
                }
-               Entry entry = new Entry();
-               entry.key = name;
-               entry.value = value.toString();
 
-               if (index == -1)
+               List<String> values = new ArrayList<String>();
+               if (value instanceof String[])
                {
-                       namedParameters.add(entry);
+                       values.addAll(Arrays.asList((String[])value));
                }
                else
                {
-                       namedParameters.add(index, entry);
+                       values.add(value.toString());
+               }
+
+               for (String val : values)
+               {
+                       Entry entry = new Entry();
+                       entry.key = name;
+                       entry.value = val;
+
+                       if (index == -1)
+                       {
+                               namedParameters.add(entry);
+                       }
+                       else
+                       {
+                               namedParameters.add(index, entry);
+                       }
                }
                return this;
        }


Reply via email to