Repository: johnzon Updated Branches: refs/heads/master 2845dd882 -> 9c90117ed
JOHNZON-185 illegal enum value should lead to blowing up Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/9c90117e Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/9c90117e Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/9c90117e Branch: refs/heads/master Commit: 9c90117edbc89470878fb112b1bc58ec6ae29a2b Parents: 2845dd8 Author: Mark Struberg <[email protected]> Authored: Wed Aug 29 19:46:18 2018 +0200 Committer: Mark Struberg <[email protected]> Committed: Wed Aug 29 19:46:18 2018 +0200 ---------------------------------------------------------------------- .../org/apache/johnzon/mapper/converter/EnumConverter.java | 6 +++++- .../src/test/java/org/apache/johnzon/mapper/EnumTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/johnzon/blob/9c90117e/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java ---------------------------------------------------------------------- diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java index f5cd2ae..0056e46 100644 --- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java +++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/converter/EnumConverter.java @@ -45,7 +45,11 @@ public class EnumConverter<T extends Enum<T>> implements Converter<T>, Converter @Override public T fromString(final String text) { - return values.get(text); + T val = values.get(text); + if (val == null) { + throw new IllegalArgumentException("Illegal " + enumType + " enum value: " + text); + } + return val; } @Override http://git-wip-us.apache.org/repos/asf/johnzon/blob/9c90117e/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/EnumTest.java ---------------------------------------------------------------------- diff --git a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/EnumTest.java b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/EnumTest.java index f69ea3b..4cd233a 100644 --- a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/EnumTest.java +++ b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/EnumTest.java @@ -28,6 +28,14 @@ import java.util.List; public class EnumTest { + @Test(expected = MapperException.class) + public void testUnknownEnumValue() { + Mapper mapper = newTestMapperBuilder().build(); + + String json = "{\"myEnum\":\"UNKNOWN\"}"; + SimpleObject simpleObject = mapper.<SimpleObject>readObject(json, SimpleObject.class); + } + @Test public void testSimpleEnumAccessModeBoth() { testSimpleField(newTestMapperBuilder().setAccessModeName("both")
