You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by st...@apache.org on 2018/08/29 17:47:01 UTC

johnzon git commit: JOHNZON-185 illegal enum value should lead to blowing up

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 <st...@apache.org>
Authored: Wed Aug 29 19:46:18 2018 +0200
Committer: Mark Struberg <st...@apache.org>
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")