diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java index 3c5b66a6..fbe566b0 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/analysis/JavaLangMapper.java @@ -693,7 +693,8 @@ protected TypeName defaultAction(TypeMirror e, Void p) { * @return true if it's a concrete class */ private static boolean isConcreteClass(TypeElement typeElement) { - return typeElement.getKind() == javax.lang.model.element.ElementKind.CLASS + return typeElement != null + && typeElement.getKind() == javax.lang.model.element.ElementKind.CLASS && !typeElement.getModifiers().contains(javax.lang.model.element.Modifier.ABSTRACT); } } diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ImportCollector.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ImportCollector.java index 5d2beef4..b7ab0b87 100644 --- a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ImportCollector.java +++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/ImportCollector.java @@ -2,6 +2,7 @@ import java.util.Comparator; import java.util.LinkedHashSet; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -15,6 +16,7 @@ import org.javahelpers.simple.builders.processor.model.method.MethodCodeTypePlaceholder; import org.javahelpers.simple.builders.processor.model.method.MethodDto; import org.javahelpers.simple.builders.processor.model.method.MethodParameterDto; +import org.javahelpers.simple.builders.processor.model.type.GenericParameterDto; import org.javahelpers.simple.builders.processor.model.type.TypeName; import org.javahelpers.simple.builders.processor.model.type.TypeNameArray; import org.javahelpers.simple.builders.processor.model.type.TypeNameGeneric; @@ -147,9 +149,10 @@ public ImportCollector collectImports(GenerationTargetClassDto classDef) { // Add class type and generics addTypeImports(classDef.getTypeName()); - classDef - .getGenerics() - .forEach(generic -> generic.getUpperBounds().forEach(this::addTypeImports)); + List generics = classDef.getGenerics(); + if (generics != null) { + generics.forEach(generic -> generic.getUpperBounds().forEach(this::addTypeImports)); + } // Add interface imports classDef.getInterfaces().forEach(this::addInterfaceImports);