Skip to content

Commit d2177cf

Browse files
committed
StickyLine.getText() should not fail on not mapped widget lines
Fixes #3085
1 parent 7edad0f commit d2177cf

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,8 @@ private void styleStickyLines() {
236236

237237
List<StyleRange> stickyLinesStyleRanges= new ArrayList<>();
238238
int stickyLineTextOffset= 0;
239-
for (int i= 0; i < getNumberStickyLines(); i++) {
239+
int stickyLinesCount = getNumberStickyLines();
240+
for (int i = 0; i < stickyLinesCount; i++) {
240241
IStickyLine stickyLine= stickyLines.get(i);
241242
StyleRange[] ranges= stickyLine.getStyleRanges();
242243
if (ranges != null) {

bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll/StickyLine.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ public int getLineNumber() {
4747
public String getText() {
4848
if (text == null) {
4949
StyledText textWidget = sourceViewer.getTextWidget();
50-
text = textWidget.getLine(getWidgetLineNumber());
50+
int widgetLineNumber = getWidgetLineNumber();
51+
if (widgetLineNumber < 0 || widgetLineNumber >= textWidget.getLineCount()) {
52+
return ""; // return empty string if line number is invalid //$NON-NLS-1$
53+
}
54+
text = textWidget.getLine(widgetLineNumber);
5155
}
5256
return text;
5357
}

0 commit comments

Comments
 (0)