diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
index 05f76c6..6a92f5d 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java
@@ -81,11 +81,13 @@
     protected final boolean skipEmptyArray;
     protected final boolean treatByteArrayAsBase64;
 
+    // CHECKSTYLE:OFF
     public Mapper(final JsonReaderFactory readerFactory, final JsonGeneratorFactory generatorFactory,
                   final boolean doClose, final Map<Class<?>, Converter<?>> converters,
                   final int version, final Comparator<String> attributeOrder, final boolean skipNull, final boolean skipEmptyArray,
                   final AccessMode accessMode, final boolean hiddenConstructorSupported, final boolean useConstructors,
                   final boolean treatByteArrayAsBase64) {
+    // CHECKSTYLE:ON
         this.readerFactory = readerFactory;
         this.generatorFactory = generatorFactory;
         this.close = doClose;
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAccessMode.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAccessMode.java
index 1299cfa..5bf9f0c 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAccessMode.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/FieldAccessMode.java
@@ -84,8 +84,8 @@
         return fields;
     }
 
-    public static abstract class FieldDecoratedType implements DecoratedType {
-        public final Field field;
+    protected static abstract class FieldDecoratedType implements DecoratedType {
+        protected final Field field;
 
         public FieldDecoratedType(final Field field) {
             this.field = field;
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
index 9167b98..4318a17 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
@@ -93,8 +93,8 @@
         return propertyDescriptors;
     }
 
-    public static abstract class MethodDecoratedType implements DecoratedType {
-        public final Method method;
+    protected static abstract class MethodDecoratedType implements DecoratedType {
+        protected final Method method;
 
         public MethodDecoratedType(final Method method) {
             this.method = method;
diff --git a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/reflection/Mappings.java b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/reflection/Mappings.java
index 6fafcc3..1401d1f 100644
--- a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/reflection/Mappings.java
+++ b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/reflection/Mappings.java
@@ -62,7 +62,7 @@
             this.setters = setters;
             this.constructor = findConstructor(acceptHiddenConstructor, useConstructor);
 
-            this.constructorHasArguments = this.constructor.getGenericParameterTypes().length > 0;
+            this.constructorHasArguments = this.constructor != null && this.constructor.getGenericParameterTypes().length > 0;
             if (this.constructorHasArguments) {
                 this.constructorParameterTypes = this.constructor.getGenericParameterTypes();
 
