From 3ff696d1a9b529348e186fe187a015c8075545e3 Mon Sep 17 00:00:00 2001 From: Michael Rittmeister Date: Mon, 11 Nov 2024 22:20:34 +0100 Subject: Fix StackOverFlow error on Kotlin classes without @Extension (#595) --- pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pf4j/src/main/java') diff --git a/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java b/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java index 59488ba..caa415f 100644 --- a/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java +++ b/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java @@ -358,7 +358,12 @@ public abstract class AbstractExtensionFinder implements ExtensionFinder, Plugin // search recursively through all annotations for (Annotation annotation : clazz.getAnnotations()) { Class annotationClass = annotation.annotationType(); - if (!annotationClass.getName().startsWith("java.lang.annotation")) { + if (!annotationClass.getName().startsWith("java.lang.annotation") && !annotationClass.getName().startsWith("kotlin")) { + // In case an annotation is annotated with itself, + // an example would be @Target, which is ignored by the check above + // however, other libraries might do similar things + if (annotationClass.equals(clazz)) continue; + Extension extensionAnnotation = findExtensionAnnotation(annotationClass); if (extensionAnnotation != null) { return extensionAnnotation; -- cgit v1.2.3