Bug 67978 IndexOutOfBounds in JavaEditor$MouseClickListener.repairRepresentation()
While using the JDT editor in Eclipse 3.0RC3 I received the following stacktrace, but can't say exactly what I did to get that. Not sure if it belongs to SWT or JDT-UI. Hope it tells somebody enought to fix it: java.lang.IllegalArgumentException: Index out of bounds at org.eclipse.swt.SWT.error(SWT.java:2677) at org.eclipse.swt.SWT.error(SWT.java:2616) at org.eclipse.swt.SWT.error(SWT.java:2587) at org.eclipse.swt.custom.StyledText.redrawRange(StyledText.java:6019) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.repairRepresentation(JavaEditor.java:907) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.deactivate(JavaEditor.java:717) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.deactivate(JavaEditor.java:710) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$MouseClickListener.focusLost(JavaEditor.java:1212) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:108) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:801) at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:1756) at org.eclipse.swt.widgets.Control.WM_KILLFOCUS(Control.java:3615) at org.eclipse.swt.widgets.Canvas.WM_KILLFOCUS(Canvas.java:233) at org.eclipse.swt.widgets.Control.windowProc(Control.java:2999) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3298) at org.eclipse.swt.internal.win32.OS.BringWindowToTop(Native Method) at org.eclipse.swt.widgets.Decorations.bringToTop(Decorations.java:206) at org.eclipse.swt.widgets.Shell.open(Shell.java:757) at org.eclipse.jface.window.Window.open(Window.java:644) at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:257) at org.eclipse.jface.dialogs.ErrorDialog.openError(ErrorDialog.java:319) at org.eclipse.jface.dialogs.ErrorDialog.openError(ErrorDialog.java:285) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.logException(WorkbenchKeyboard.java:662) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:930) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:546) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:494) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:259) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:714) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:795) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:805) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1734) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1730) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3067) at org.eclipse.swt.widgets.Control.windowProc(Control.java:2970) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3298) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1467) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2396) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1375) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1346) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:252) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:272) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.core.launcher.Main.basicRun(Main.java:186) at org.eclipse.core.launcher.Main.run(Main.java:647) at org.eclipse.core.launcher.Main.main(Main.java:631)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java
/**
		 * Creates a new delete previous sub-word action.
		 */
		public DeletePreviousSubWordAction() {
			super(ST.DELETE_WORD_PREVIOUS);
		}
		/*
		 * @see org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.PreviousSubWordAction#setCaretPosition(int)
		 */
		protected void setCaretPosition(final int position) {
			if (!validateEditorInputState())
				return;