Skip to content

Commit aae5b49

Browse files
committed
Avoid IllegalArgumentException if the line number mapping fails
See eclipse-platform#3080 See also eclipse-jdt/eclipse.jdt.ui#2316
1 parent a7196d2 commit aae5b49

File tree

1 file changed

+10
-7
lines changed
  • bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/stickyscroll

1 file changed

+10
-7
lines changed

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

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,19 @@ public StyleRange[] getStyleRanges() {
5757
StyledText textWidget = sourceViewer.getTextWidget();
5858
int widgetLineNumber = getWidgetLineNumber();
5959

60-
if (widgetLineNumber >= textWidget.getLineCount()) {
60+
if (widgetLineNumber < 0 || widgetLineNumber >= textWidget.getLineCount()) {
6161
return null;
6262
}
63-
64-
int offsetAtLine = textWidget.getOffsetAtLine(getWidgetLineNumber());
65-
StyleRange[] styleRanges = textWidget.getStyleRanges(offsetAtLine, getText().length());
66-
for (StyleRange styleRange : styleRanges) {
67-
styleRange.start = styleRange.start - offsetAtLine;
63+
try {
64+
int offsetAtLine = textWidget.getOffsetAtLine(widgetLineNumber);
65+
StyleRange[] styleRanges = textWidget.getStyleRanges(offsetAtLine, getText().length());
66+
for (StyleRange styleRange : styleRanges) {
67+
styleRange.start = styleRange.start - offsetAtLine;
68+
}
69+
return styleRanges;
70+
} catch (IllegalArgumentException e) {
71+
return null; // in case of an invalid line number, return null
6872
}
69-
return styleRanges;
7073
}
7174

7275
private int getWidgetLineNumber() {

0 commit comments

Comments
 (0)