diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffPanel.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffPanel.java index 373d90d92cc8..2cff7cab3af9 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffPanel.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffPanel.java @@ -273,8 +273,9 @@ class PreviewDiffPanel extends BorderLayoutPanel implements Disposable, PreviewT @NotNull private static TextRange getLinesRange(@NotNull TextRange textRange, @NotNull Document document) { - return new TextRange(document.getLineStartOffset(document.getLineNumber(textRange.getStartOffset())), - document.getLineEndOffset(document.getLineNumber(textRange.getEndOffset())) + 1); + int startLine = document.getLineNumber(textRange.getStartOffset()); + int endLine = document.getLineNumber(Math.min(textRange.getEndOffset(), document.getTextLength())); + return new TextRange(document.getLineStartOffset(startLine), document.getLineEndOffset(endLine)); } private static void doExtractImpl(@NotNull JavaDuplicatesExtractMethodProcessor processor, diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffRequest.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffRequest.java index 40ba3e8ae5fb..126f1ed10dd1 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffRequest.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/preview/PreviewDiffRequest.java @@ -99,7 +99,7 @@ class PreviewDiffRequest extends SimpleDiffRequest { int newOffset = e.getEditor().logicalPositionToOffset(e.getNewPosition()); for (Map.Entry> entry : myLinesBounds.entrySet()) { TextRange range = mySideGetter.apply(entry.getValue()); - if (range.contains(newOffset)) { + if (range.containsOffset(newOffset)) { mySelectNode.consume(entry.getKey()); break; }