diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/LineBackgroundPainter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/LineBackgroundPainter.java index 384b4c86996..26a46ec8003 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/LineBackgroundPainter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/LineBackgroundPainter.java @@ -400,8 +400,11 @@ public class LineBackgroundPainter implements IPainter, LineBackgroundListener { private int getTopIndexStartOffset() { if (fTextWidget != null) { int top= fTextWidget.getTopIndex(); - top= fTextWidget.getOffsetAtLine(top); - return getDocumentOffset(top); + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=183653 + top= fTextWidget.getOffsetAtLine(Math.min(fTextWidget.getLineCount() - 1, top)); + if (top >= 0) { + return getDocumentOffset(top); + } } return -1; }