diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java index 2f03d299b..68c86c917 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationHierarchies.java @@ -160,11 +160,11 @@ public abstract class AnnotationHierarchies { IAnnotationBinding annotationBinding, Set seen) { synchronized (lock) { if (annotationBinding.getAnnotationType() != null) { - seen.add(annotationBinding.getAnnotationType().getQualifiedName()); - return Stream.concat(Stream.of(annotationBinding), getDirectSuperAnnotationBindings(annotationBinding) - .stream() - .filter(superBinding -> !seen.contains(superBinding.getAnnotationType().getQualifiedName())) - .flatMap(superBinding -> internalFindTransitiveSuperAnnotationBindings(superBinding, seen))); + if (seen.add(annotationBinding.getAnnotationType().getQualifiedName())) { + return Stream.concat(Stream.of(annotationBinding), getDirectSuperAnnotationBindings(annotationBinding) + .stream() + .flatMap(superBinding -> internalFindTransitiveSuperAnnotationBindings(superBinding, seen))); + } } return Stream.empty(); }