This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push: new b18c183 JOHNZON-282 harnessing ParameterizedType usage for library handling of readers b18c183 is described below commit b18c183bd430a8da6b15435114240a8259ca1021 Author: Romain Manni-Bucau <rmannibu...@apache.org> AuthorDate: Sat Sep 28 17:21:43 2019 +0200 JOHNZON-282 harnessing ParameterizedType usage for library handling of readers --- .../java/org/apache/johnzon/jsonb/JsonbAccessMode.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java index 7f6ddaa..4d19dff 100644 --- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java +++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/JsonbAccessMode.java @@ -1038,17 +1038,17 @@ public class JsonbAccessMode implements AccessMode, Closeable { } private boolean hasRawType(final Type type) { - return Class.class.isInstance(type) || ParameterizedType.class.isInstance(type); + return Class.class.isInstance(type) || + (ParameterizedType.class.isInstance(type) && + Class.class.isInstance(ParameterizedType.class.cast(type).getRawType())); } - private Class<?> getRawType(final Type type) { - if (!Class.class.isInstance(type) && !ParameterizedType.class.isInstance(type)) { - throw new IllegalStateException("Unsupported generic type " + type.getClass().getName()); - } else if (Class.class.isInstance(type)) { + private Class<?> getRawType(final Type type) { // only intended to be used after hasRawType check + if (Class.class.isInstance(type)) { return Class.class.cast(type); - } else /*if (ParameterizedType.class.isInstance(type))*/ { - return Class.class.cast(ParameterizedType.class.cast(type).getRawType()); } + // ParameterizedType + Class raw type + return Class.class.cast(ParameterizedType.class.cast(type).getRawType()); } private static class ClassDecoratedType implements DecoratedType {