Bug 508591 - StringIndexOutOfBoundsException in ProgressManagerUtil.getClippedString
Summary: StringIndexOutOfBoundsException in ProgressManagerUtil.getClippedString
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.7   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.7 M4   Edit
Assignee: Andrey Loskutov CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 111900
  Show dependency tree
 
Reported: 2016-12-02 05:28 EST by Andrey Loskutov CLA
Modified: 2016-12-02 17:46 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Loskutov CLA 2016-12-02 05:28:05 EST
I've got this today on latest nightly build.

The  length - end == -4. This can only happen if pivot is bigger then text length.

java.lang.StringIndexOutOfBoundsException: String index out of range: -4
	at java.lang.String.substring(String.java:1967)
	at org.eclipse.ui.internal.progress.ProgressManagerUtil.getClippedString(ProgressManagerUtil.java:330)
	at org.eclipse.ui.internal.progress.ProgressManagerUtil.clipToLength(ProgressManagerUtil.java:305)
	at org.eclipse.ui.internal.progress.ProgressManagerUtil.clipToSize(ProgressManagerUtil.java:224)
	at org.eclipse.ui.internal.progress.ProgressManagerUtil.shortenText(ProgressManagerUtil.java:187)
	at org.eclipse.ui.internal.progress.ProgressViewerLabelProvider.getText(ProgressViewerLabelProvider.java:25)
	at org.eclipse.ui.internal.progress.ProgressCanvasViewer$2.paintControl(ProgressCanvasViewer.java:174)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:231)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5230)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1357)
	at org.eclipse.swt.widgets.Control.gtk_draw(Control.java:3361)
	at org.eclipse.swt.widgets.Composite.gtk_draw(Composite.java:344)
	at org.eclipse.swt.widgets.Canvas.gtk_draw(Canvas.java:172)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1938)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:5808)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5490)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9001)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1257)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2108)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4083)
Comment 1 Andrey Loskutov CLA 2016-12-02 05:34:17 EST
(In reply to Andrey Loskutov from comment #0)
> The  length - end == -4. This can only happen if pivot is bigger then text
> length.

Wrong, this can also happen if  (pivot + (charsToClip + 1) / 2) > length.

Regression from commit 62b818369a1dfc551ef1ffdb102760b7087a8b6c bug 111900.

I think I have a fix.
Comment 2 Eclipse Genie CLA 2016-12-02 05:35:13 EST
New Gerrit change created: https://git.eclipse.org/r/86217