diff --git a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java index d7cd80c16b42..88fa616d7025 100644 --- a/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java +++ b/java/execution/openapi/src/com/intellij/execution/filters/ExceptionExFilterFactory.java @@ -84,9 +84,8 @@ public class ExceptionExFilterFactory implements ExceptionFilterFactory { worker.execute(text, lineEndOffset); Result result = worker.getResult(); if (result == null) continue; - int offset = result.hyperlinkInfo instanceof OpenFileHyperlinkInfo - ? ((OpenFileHyperlinkInfo)result.hyperlinkInfo).getDescriptor().getOffset() - : -1; + OpenFileHyperlinkInfo hyperlinkInfo = ExceptionWorker.getOpenFileHyperlinkInfo(result); + int offset = hyperlinkInfo == null? -1 : hyperlinkInfo.getDescriptor().getOffset(); PsiFile psiFile = worker.getFile(); if (offset <= 0 || psiFile == null) continue; PsiElement element = psiFile.findElementAt(offset); diff --git a/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java b/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java index 16c129f53e98..d9e01db682e7 100644 --- a/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java +++ b/java/openapi/src/com/intellij/execution/filters/ExceptionWorker.java @@ -199,6 +199,15 @@ public class ExceptionWorker { return pos; } + @Nullable + static OpenFileHyperlinkInfo getOpenFileHyperlinkInfo(Filter.Result result) { + if (result.hyperlinkInfo instanceof MyHyperlinkInfo) { + MyHyperlinkInfo info = (MyHyperlinkInfo)result.hyperlinkInfo; + return new OpenFileHyperlinkInfo(info.myProject, info.myVirtualFile, info.myLineNumber); + } + return null; + } + private static class MyHyperlinkInfo implements HyperlinkInfo { private final VirtualFile myVirtualFile; private final int myLineNumber;