Skip to content

Commit 0d9b0ac

Browse files
fbriconangelozerr
authored andcommitted
fix: prevent potential NPE in MicroProfileRestClientDiagnosticsParticipant.validateField()
Signed-off-by: Fred Bricon <fbricon@gmail.com>
1 parent 032f2b9 commit 0d9b0ac

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/main/java/com/redhat/devtools/intellij/lsp4mp4ij/psi/core/utils/PsiTypeUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.intellij.psi.util.PsiTreeUtil;
4444
import com.intellij.psi.util.PsiTypesUtil;
4545
import com.intellij.psi.util.PsiUtil;
46+
import org.jetbrains.annotations.Nullable;
4647
import org.slf4j.Logger;
4748
import org.slf4j.LoggerFactory;
4849

@@ -142,6 +143,7 @@ public static String getSourceMethod(PsiMethod method) {
142143
}
143144

144145

146+
@Nullable
145147
public static PsiClass findType(PsiManager manager, String name) {
146148
JavaPsiFacade facade = JavaPsiFacade.getInstance(manager.getProject());
147149
return facade.findClass(name, GlobalSearchScope.allScope(manager.getProject()));

src/main/java/com/redhat/devtools/intellij/lsp4mp4ij/psi/internal/restclient/java/MicroProfileRestClientDiagnosticsParticipant.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ private static void validateField(PsiField field, List<Diagnostic> diagnostics,
123123
boolean hasRestClientAnnotation = AnnotationUtils.hasAnnotation(field, REST_CLIENT_ANNOTATION);
124124
String fieldTypeName = PsiTypeUtils.getResolvedTypeName(field);
125125
PsiClass fieldType = PsiTypeUtils.findType(field.getManager(), fieldTypeName);
126+
if (fieldType == null) {
127+
// document is in invalid state? better bail now.
128+
// See https://github.com/redhat-developer/intellij-quarkus/issues/823
129+
return;
130+
}
126131
boolean hasRegisterRestClient = AnnotationUtils.hasAnnotation(fieldType, REGISTER_REST_CLIENT_ANNOTATION)
127132
&& fieldType.isInterface();
128133

0 commit comments

Comments
 (0)