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");
}
}