diff --git a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java index ce44dfc2504..5d0d04beb2a 100644 --- a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java +++ b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java @@ -236,7 +236,8 @@ private void styleStickyLines() { List stickyLinesStyleRanges= new ArrayList<>(); int stickyLineTextOffset= 0; - for (int i= 0; i < getNumberStickyLines(); i++) { + int stickyLinesCount = getNumberStickyLines(); + for (int i = 0; i < stickyLinesCount; i++) { IStickyLine stickyLine= stickyLines.get(i); StyleRange[] ranges= stickyLine.getStyleRanges(); if (ranges != null) { diff --git a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll/StickyLine.java b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll/StickyLine.java index 5100417fafd..fa00944998b 100644 --- a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll/StickyLine.java +++ b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll/StickyLine.java @@ -47,7 +47,11 @@ public int getLineNumber() { public String getText() { if (text == null) { StyledText textWidget = sourceViewer.getTextWidget(); - text = textWidget.getLine(getWidgetLineNumber()); + int widgetLineNumber = getWidgetLineNumber(); + if (widgetLineNumber < 0 || widgetLineNumber >= textWidget.getLineCount()) { + return ""; // return empty string if line number is invalid //$NON-NLS-1$ + } + text = textWidget.getLine(widgetLineNumber); } return text; }