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

Reply via email to