diff --git a/java/openapi/src/com/intellij/execution/filters/ExceptionInfoCache.java b/java/openapi/src/com/intellij/execution/filters/ExceptionInfoCache.java index 8095c24d8696..3435c7d92d84 100644 --- a/java/openapi/src/com/intellij/execution/filters/ExceptionInfoCache.java +++ b/java/openapi/src/com/intellij/execution/filters/ExceptionInfoCache.java @@ -67,7 +67,7 @@ public class ExceptionInfoCache { @NotNull ClassResolveInfo resolveClass(String className) { ClassResolveInfo cached = myCache.get(className); - if (cached != null) { + if (cached != null && cached.isValid()) { return cached; } @@ -114,6 +114,11 @@ public class ExceptionInfoCache { } return myExceptionClasses; } + + boolean isValid() { + return ContainerUtil.and(myClasses.values(), PsiElement::isValid) && + (myExceptionClasses == null || ContainerUtil.and(myExceptionClasses, PsiElement::isValid)); + } @NotNull static ExceptionInfoCache.ClassResolveInfo create(Project project, PsiElement[] elements) {