diff options
-rw-r--r-- | server/src/main/java/com/vaadin/ui/CheckBoxGroup.java | 2 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/data/BinderMultiSelectTest.java | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java b/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java index 8525dc6cbb..d5b2c5a851 100644 --- a/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java +++ b/server/src/main/java/com/vaadin/ui/CheckBoxGroup.java @@ -71,7 +71,7 @@ public class CheckBoxGroup<T> extends AbstractMultiSelect<T> { @Override public Set<T> getSelectedItems() { - return Collections.unmodifiableSet(selection); + return Collections.unmodifiableSet(new LinkedHashSet<>(selection)); } @Override diff --git a/server/src/test/java/com/vaadin/data/BinderMultiSelectTest.java b/server/src/test/java/com/vaadin/data/BinderMultiSelectTest.java index 93f4ccdac4..fd75c930f3 100644 --- a/server/src/test/java/com/vaadin/data/BinderMultiSelectTest.java +++ b/server/src/test/java/com/vaadin/data/BinderMultiSelectTest.java @@ -118,6 +118,20 @@ public class BinderMultiSelectTest } @Test + public void bound_setSelection_beanValueIsACopy() { + bindEnum(); + + select.select(TestEnum.TWO); + + Set<TestEnum> enums = item.getEnums(); + + binder.bind(new BeanWithEnums()); + select.select(TestEnum.ONE); + + assertEquals(Collections.singleton(TestEnum.TWO), enums); + } + + @Test public void bound_deselect_beanValueUpdatedToNull() { item.setEnums(Collections.singleton(TestEnum.ONE)); bindEnum(); |