diff --git a/processor/pom.xml b/processor/pom.xml
index b3f06dfa..5a741268 100644
--- a/processor/pom.xml
+++ b/processor/pom.xml
@@ -54,7 +54,7 @@
1.1.1
- 0.8.0
+ 0.9.0
3.20.0
4.5.0
6.0.1
diff --git a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java
index 7a407497..bdc986bd 100644
--- a/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java
+++ b/processor/src/main/java/org/javahelpers/simple/builders/processor/util/JavapoetMapper.java
@@ -77,11 +77,9 @@ public static TypeName map2ParameterType(
instanceof org.javahelpers.simple.builders.processor.dtos.TypeNameVariable typeVariable) {
return TypeVariableName.get(typeVariable.getClassName());
}
- ClassName classNameParameter =
- ClassName.get(parameterType.getPackageName(), parameterType.getClassName());
- if (parameterType instanceof TypeNameArray parameterTypeArray) {
- return ArrayTypeName.of(map2ParameterType(parameterTypeArray.getTypeOfArray()));
- } else if (parameterType instanceof TypeNamePrimitive parameterTypePrim) {
+ // Handle primitives BEFORE calling ClassName.get() to avoid IllegalArgumentException in
+ // JavaPoet 0.9.0+
+ if (parameterType instanceof TypeNamePrimitive parameterTypePrim) {
return switch (parameterTypePrim.getType()) {
case BOOLEAN -> TypeName.BOOLEAN;
case BYTE -> TypeName.BYTE;
@@ -93,7 +91,14 @@ public static TypeName map2ParameterType(
case SHORT -> TypeName.SHORT;
default -> null;
};
- } else if (parameterType instanceof TypeNameGeneric param) {
+ }
+ if (parameterType instanceof TypeNameArray parameterTypeArray) {
+ return ArrayTypeName.of(map2ParameterType(parameterTypeArray.getTypeOfArray()));
+ }
+ // Now safe to call ClassName.get() for non-primitive types
+ ClassName classNameParameter =
+ ClassName.get(parameterType.getPackageName(), parameterType.getClassName());
+ if (parameterType instanceof TypeNameGeneric param) {
// Handle raw types (e.g., List without ) - return just the class name
if (param.getInnerTypeArguments().isEmpty()) {
return classNameParameter;