ExceptionWorker: off-by-one error fixed (EA-137926 - IOOBE: LineSet.checkLineIndex)

This commit is contained in:
Tagir Valeev
2019-02-27 11:34:08 +07:00
parent 1586b90ba9
commit c162891747
2 changed files with 4 additions and 2 deletions
@@ -207,7 +207,9 @@ public class ExceptionWorkerTest extends LightCodeInsightFixtureTestCase {
"}";
List<Trinity<String, Integer, Integer>> traceAndPositions = Arrays.asList(
Trinity.create("Exception in thread \"main\" java.lang.ArrayStoreException: java.lang.Integer\n", null, null),
Trinity.create("\tat SomeClass.main(SomeClass.java:5)\n", 5, 12));
Trinity.create("\tat SomeClass.main(SomeClass.java:5)\n", 5, 12),
Trinity.create("\tat SomeClass.unknown(SomeClass.java:0)\n", 5, 12), // do not navigate: keep previous position
Trinity.create("\tat SomeClass.unknown(SomeClass.java:1)\n", 1, 1));
checkColumnFinder(classText, traceAndPositions);
}
@@ -128,7 +128,7 @@ public class ExceptionWorker {
virtualFiles = virtualFilesInContent;
}
ToIntFunction<PsiFile> columnFinder =
elementMatcher == null || myInfo.lineNumber < 0 ? null : new ExceptionColumnFinder(elementMatcher, myInfo.lineNumber - 1);
elementMatcher == null || myInfo.lineNumber <= 0 ? null : new ExceptionColumnFinder(elementMatcher, myInfo.lineNumber - 1);
HyperlinkInfo linkInfo =
HyperlinkInfoFactory.getInstance().createMultipleFilesHyperlinkInfo(virtualFiles, myInfo.lineNumber - 1, myProject, columnFinder);
Filter.Result result = new Filter.Result(highlightStartOffset, highlightEndOffset, linkInfo, attributes);