commit | 194f02bf87ad497ef90318e146f5d2615c1c625b | [log] [tgz] |
---|---|---|
author | Romain Manni-Bucau <rmannibucau@gmail.com> | Thu Mar 25 10:18:40 2021 +0100 |
committer | Romain Manni-Bucau <rmannibucau@gmail.com> | Thu Mar 25 10:18:40 2021 +0100 |
tree | 562c5faf9ac5c722e8f0f1dae17d87884167ad2c | |
parent | 5e9ee0a89fb13cf240b3c9ef0d0ed32d801869c5 [diff] |
[JOHNZON-338] ensure records don't have to be public to be deserialized
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 363f9b6..cc03e7b 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
@@ -307,7 +307,7 @@ Stream.of(clazz.getDeclaredMethods()), clazz.getSuperclass() == null || clazz.getSuperclass() == Object.class || clazz.getSuperclass() == clazz ? Stream.empty() : - findPotentialFactoryMethods(clazz))); + findPotentialFactoryMethods(clazz.getSuperclass()))); } private Factory methodFactory(final Class<?> clazz, final Method finalFactory,
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/BaseAccessMode.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/BaseAccessMode.java index 7bd011e..071af16 100644 --- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/BaseAccessMode.java +++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/BaseAccessMode.java
@@ -268,8 +268,8 @@ }; } - private Constructor<?> findRecordConstructor(Class<?> clazz) { - return Stream.of(clazz.getConstructors()) + private Constructor<?> findRecordConstructor(final Class<?> clazz) { + return Stream.of(clazz.getDeclaredConstructors()) .max(comparing(Constructor::getParameterCount)) .map(c -> { if (!c.isAccessible()) {