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