diff --git a/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanDiagnosticsCollector.java b/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanDiagnosticsCollector.java index 2391688e7..42eac428a 100644 --- a/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanDiagnosticsCollector.java +++ b/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanDiagnosticsCollector.java @@ -80,7 +80,7 @@ public void collectDiagnostics(PsiJavaFile unit, List diagnostics) { if (isManagedBean && field.hasModifierProperty(PsiModifier.PUBLIC) && !field.hasModifierProperty(PsiModifier.STATIC) - && (fieldScopes.size() != 1 || !fieldScopes.get(0).equals(DEPENDENT_FQ_NAME))) { + && !managedBeanAnnotations.contains(DEPENDENT_FQ_NAME)) { diagnostics.add(createDiagnostic(field, unit, Messages.getMessage("ManagedBeanWithNonStaticPublicField"), DIAGNOSTIC_CODE, null, diff --git a/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanQuickFix.java b/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanQuickFix.java index 2707f34a5..2241ad4b0 100644 --- a/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanQuickFix.java +++ b/src/main/java/io/openliberty/tools/intellij/lsp4jakarta/lsp4ij/cdi/ManagedBeanQuickFix.java @@ -17,8 +17,10 @@ import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.IndexNotReadyException; +import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiModifierListOwner; +import com.intellij.psi.util.PsiTreeUtil; import io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.JDTUtils; import io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.Messages; import io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.codeAction.proposal.quickfix.InsertAnnotationMissingQuickFix; @@ -69,7 +71,7 @@ public CodeAction resolveCodeAction(JavaCodeActionResolveContext context) { final CodeAction toResolve = context.getUnresolved(); String name = toResolve.getTitle(); PsiElement node = context.getCoveringNode(); - PsiModifierListOwner parentType = getBinding(node); + PsiModifierListOwner parentType = PsiTreeUtil.getParentOfType(node, PsiClass.class); ChangeCorrectionProposal proposal = new ReplaceAnnotationProposal(name, context.getCompilationUnit(), context.getASTRoot(), parentType, 0, ADD_ANNOTATION, context.getSource().getCompilationUnit(), REMOVE_ANNOTATION_NAMES); diff --git a/src/test/java/io/openliberty/tools/intellij/lsp4jakarta/it/cdi/ManagedBeanTest.java b/src/test/java/io/openliberty/tools/intellij/lsp4jakarta/it/cdi/ManagedBeanTest.java index 3198f99cf..fd07f443f 100644 --- a/src/test/java/io/openliberty/tools/intellij/lsp4jakarta/it/cdi/ManagedBeanTest.java +++ b/src/test/java/io/openliberty/tools/intellij/lsp4jakarta/it/cdi/ManagedBeanTest.java @@ -65,8 +65,8 @@ public void managedBeanAnnotations() throws Exception { assertJavaDiagnostics(diagnosticsParams, utils, d1, d2); String newText1 = "package io.openliberty.sample.jakarta.cdi;\n\n" + "import jakarta.enterprise.context.*;\n\n" + - "@RequestScoped\npublic class ManagedBean {\n " + - "@Dependent\n public int a;\n\n\n " + + "@Dependent\npublic class ManagedBean {\n " + + "public int a;\n\n\n " + "public ManagedBean() {\n this.a = 10;\n }\n}\n"; String newText2 = "package io.openliberty.sample.jakarta.cdi;\n\n" + "import jakarta.enterprise.context.*;\n\n" +