From 5fc90cda4c27402414fd31c1b87194968321a2fa Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Wed, 19 Oct 2016 12:05:09 +0300 Subject: [PATCH] Throw exception from multiple columns with same identifier Change-Id: Ibb002cb862a7d0069ce4757e4c11482f6ae4d354 --- server/src/main/java/com/vaadin/ui/Grid.java | 13 ++++++++++--- .../tests/server/component/grid/GridTest.java | 5 +++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/vaadin/ui/Grid.java b/server/src/main/java/com/vaadin/ui/Grid.java index a27130903e..843db35e16 100644 --- a/server/src/main/java/com/vaadin/ui/Grid.java +++ b/server/src/main/java/com/vaadin/ui/Grid.java @@ -1635,14 +1635,19 @@ public class Grid extends AbstractSingleSelect implements HasComponents { * the column value type * * @return the new column + * @throws IllegalArgumentException + * if the same identifier is used for multiple columns * * @see {@link AbstractRenderer} */ public Column addColumn(String identifier, Function valueProvider, - AbstractRenderer renderer) { - assert !columnKeys.containsKey(identifier) : "Duplicate identifier: " - + identifier; + AbstractRenderer renderer) + throws IllegalArgumentException { + if (columnKeys.containsKey(identifier)) { + throw new IllegalArgumentException( + "Multiple columns with the same identifier: " + identifier); + } final Column column = new Column<>( SharedUtil.camelCaseToHumanFriendly(identifier), valueProvider, @@ -1661,6 +1666,8 @@ public class Grid extends AbstractSingleSelect implements HasComponents { * the value provider * * @return the new column + * @throws IllegalArgumentException + * if the same identifier is used for multiple columns */ public Column addColumn(String identifier, Function valueProvider) { diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java index 7c4af0b5bf..eec20e2b9d 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java @@ -74,4 +74,9 @@ public class GridTest { "Random Column Id", grid.getColumn("randomColumnId").getCaption()); } + + @Test(expected = IllegalArgumentException.class) + public void testGridMultipleColumnsWithSameIdentifier() { + grid.addColumn("foo", t -> t); + } } -- 2.39.5