[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()) {