From 1ed5700f074d8dd768db842e2b233dde93aa51a1 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 4 Oct 2013 17:14:06 +0200 Subject: [PATCH] diagnostics instead of SIOOBE when checking completion copy consistency (EA-48732) --- .../intellij/codeInsight/completion/CompletionAssertions.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionAssertions.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionAssertions.java index efdf5703cd4a..4d1eea7f4133 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionAssertions.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionAssertions.java @@ -145,7 +145,8 @@ class CompletionAssertions { } final TextRange range = insertedElement.getTextRange(); - if (!range.substring(fileCopy.getText()).equals(insertedElement.getText())) { + String fileCopyText = fileCopy.getText(); + if ((range.getEndOffset() > fileCopyText.length()) || !range.substring(fileCopyText).equals(insertedElement.getText())) { throw new LogEventException("Inconsistent completion tree", "range=" + range + "\n" + DebugUtil.currentStackTrace(), createFileTextAttachment(fileCopy, originalFile), createAstAttachment(fileCopy, originalFile), new Attachment("Element at caret.txt", insertedElement.getText()));