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 <[email protected]>
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 {