From 1a5a46f6d7a54fa180ed537e9a5279124642aa99 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Thu, 29 Jan 2026 12:05:34 +0100 Subject: [PATCH] Fix possible CCE during auto completion of invalid code javac was observed to return Elements of types other than ExecutableElement for paths with TypeMirror kind EXECUTABLE in some cases. adds an instanceof guard instead of assuming ExecutableElement --- .../netbeans/modules/java/completion/JavaCompletionTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java b/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java index c3001cffcd39..7cf25ed54e07 100644 --- a/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java +++ b/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java @@ -5996,7 +5996,7 @@ private Set getSmartTypesImpl(Env env) throws IOException path = new TreePath(path, mid); TypeMirror typeMirror = controller.getTrees().getTypeMirror(path); final ExecutableType midTM = typeMirror != null && typeMirror.getKind() == TypeKind.EXECUTABLE ? (ExecutableType) typeMirror : null; - final ExecutableElement midEl = midTM == null ? null : (ExecutableElement) controller.getTrees().getElement(path); + final ExecutableElement midEl = midTM != null && controller.getTrees().getElement(path) instanceof ExecutableElement ee ? ee : null; switch (mid.getKind()) { case MEMBER_SELECT: { String name = ((MemberSelectTree) mid).getIdentifier().toString();