Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 148578

Summary: StringIndexOutOfBoundsException caused by IOConsolePartition
Product: [Eclipse Project] Platform Reporter: Simon Archer <sja.eclipse>
Component: DebugAssignee: Platform-Debug-Inbox <platform-debug-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: 0001rajesh, pwebster
Version: 3.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Simon Archer CLA 2006-06-25 16:14:55 EDT
Using Eclipse 3.2 RC7

I wish I could tell you more, but I can't...

!ENTRY org.eclipse.ui 4 4 2006-06-25 16:12:50.102
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2006-06-25 16:12:50.102
!MESSAGE String index out of range: -1
!STACK 0
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.AbstractStringBuilder.insert(AbstractStringBuilder.java:984)
	at java.lang.StringBuffer.insert(StringBuffer.java:447)
	at org.eclipse.ui.internal.console.IOConsolePartition.insert(IOConsolePartition.java:75)
	at org.eclipse.ui.internal.console.IOConsolePartitioner.documentChanged2(IOConsolePartitioner.java:380)
	at org.eclipse.jface.text.AbstractDocument.updateDocumentStructures(AbstractDocument.java:632)
	at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:719)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1080)
	at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1090)
	at org.eclipse.ui.internal.console.ConsoleDocument.replace(ConsoleDocument.java:83)
	at org.eclipse.ui.internal.console.ConsoleDocumentAdapter.replaceTextRange(ConsoleDocumentAdapter.java:250)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5738)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6447)
	at org.eclipse.swt.custom.StyledText.doBackspace(StyledText.java:2050)
	at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:5626)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5028)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5049)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4789)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3246)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1923)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

!ENTRY org.eclipse.ui 4 4 2006-06-25 16:12:50.273
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2006-06-25 16:12:50.273
!MESSAGE Index out of bounds
!STACK 0
java.lang.IllegalArgumentException: Index out of bounds
	at org.eclipse.swt.SWT.error(SWT.java:3358)
	at org.eclipse.swt.SWT.error(SWT.java:3297)
	at org.eclipse.swt.SWT.error(SWT.java:3268)
	at org.eclipse.swt.graphics.TextLayout._getOffset(TextLayout.java:1180)
	at org.eclipse.swt.graphics.TextLayout.getPreviousOffset(TextLayout.java:1374)
	at org.eclipse.swt.custom.StyledText.doBackspace(StyledText.java:2045)
	at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:5626)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5028)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5049)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4789)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3246)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1923)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

!ENTRY org.eclipse.ui 4 4 2006-06-25 16:12:50.453
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2006-06-25 16:12:50.453
!MESSAGE Index out of bounds
!STACK 0
java.lang.IllegalArgumentException: Index out of bounds
	at org.eclipse.swt.SWT.error(SWT.java:3358)
	at org.eclipse.swt.SWT.error(SWT.java:3297)
	at org.eclipse.swt.SWT.error(SWT.java:3268)
	at org.eclipse.swt.graphics.TextLayout._getOffset(TextLayout.java:1180)
	at org.eclipse.swt.graphics.TextLayout.getPreviousOffset(TextLayout.java:1374)
	at org.eclipse.swt.custom.StyledText.doBackspace(StyledText.java:2045)
	at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:5626)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5028)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5049)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4789)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3246)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1923)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)

!ENTRY org.eclipse.ui 4 4 2006-06-25 16:12:50.884
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2006-06-25 16:12:50.884
!MESSAGE Argument not valid
!STACK 0
java.lang.IllegalArgumentException: Argument not valid
	at org.eclipse.swt.SWT.error(SWT.java:3358)
	at org.eclipse.swt.SWT.error(SWT.java:3297)
	at org.eclipse.swt.SWT.error(SWT.java:3268)
	at org.eclipse.swt.custom.StyledText.setCaretOffset(StyledText.java:6652)
	at org.eclipse.ui.internal.console.IOConsoleViewer.handleVerifyEvent(IOConsoleViewer.java:88)
	at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:378)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:202)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:709)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5706)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6447)
	at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2094)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5024)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5049)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4789)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:952)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:965)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:961)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1275)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3246)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4025)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1923)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
Comment 1 Paul Webster CLA 2006-06-26 08:07:05 EDT
Maybe StyledText.modifyContent(*) is passing in a -1?

PW
Comment 2 Paul Webster CLA 2006-06-26 08:19:21 EDT
It might be IOConsolePartitioner.documentChanged2(IOConsolePartitioner.java:380):
  lastPartition.insert(event.fText, (event.fOffset-lastPartition.getOffset()));

PW
Comment 3 Kevin Barnes CLA 2006-06-26 15:09:13 EDT
We've already made significant changes to ConsoleDocumentAdapter since RC7 (for 3.3). Does this happen often? Do you have any way of reproducing it?
Comment 4 Simon Archer CLA 2006-06-26 15:13:02 EDT
I have only seen this once, and I'm sorry that I don't know the use-case to reproduce it.  Maybe if you think the changes are enough you can consider resoving this as fixed in 3.3.
Comment 5 Darin Wright CLA 2006-09-18 16:53:45 EDT
Marking as works for me. Please re-open if this happens in 3.3
Comment 6 Darin Wright CLA 2007-04-11 15:18:45 EDT
*** Bug 179969 has been marked as a duplicate of this bug. ***