Select setState should use a variable length List

git-svn-id: https://svn.apache.org/repos/asf/click/trunk/click@1030948 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/org/apache/click/control/Select.java b/framework/src/org/apache/click/control/Select.java
index 360cbe7..12115da 100644
--- a/framework/src/org/apache/click/control/Select.java
+++ b/framework/src/org/apache/click/control/Select.java
@@ -974,7 +974,9 @@
             localSelectedState.add(selectState);
         } else {
             String[] selectState = (String[]) state;
-            localSelectedState = Arrays.asList(selectState);
+            for (String val : selectState) {
+            localSelectedState.add(val);
+        }
         }
         setSelectedValues(localSelectedState);
     }
diff --git a/framework/test/org/apache/click/control/SelectTest.java b/framework/test/org/apache/click/control/SelectTest.java
index a66c907..a6db38e 100644
--- a/framework/test/org/apache/click/control/SelectTest.java
+++ b/framework/test/org/apache/click/control/SelectTest.java
@@ -119,6 +119,10 @@
         // Perform tests
         assertEquals(expectedState, select.getValue());
         assertEquals(expectedState, select.getSelectedValues().get(0));
+
+        // Make sure we can still add values to the Select after state is
+        // restored
+        select.getSelectedValues().add("male");
     }
 
     /**
@@ -140,5 +144,9 @@
         // Perform tests
         assertEquals(expectedState[0], select.getValue());
         assertTrue(Arrays.equals(expectedState, select.getSelectedValues().toArray()));
+
+        // Make sure we can still add values to the Select after state is
+        // restored
+        select.getSelectedValues().add("male");
     }
 }