Bug 204794 - [terminal] StringIndexOutOfBoundException when selecting text and doing right-click
Summary: [terminal] StringIndexOutOfBoundException when selecting text and doing right...
Status: RESOLVED FIXED
Alias: None
Product: Target Management
Classification: Tools
Component: Terminal (show other bugs)
Version: 2.0.1   Edit
Hardware: PC Windows XP
: P2 major (vote)
Target Milestone: 2.0.1   Edit
Assignee: Michael Scharf CLA
QA Contact: Martin Oberhuber CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-09-27 08:05 EDT by Martin Oberhuber CLA
Modified: 2007-09-27 10:43 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Oberhuber CLA 2007-09-27 08:05:07 EDT
Connect to remote through ssh. Enter
  env | grep -i lang
--> result displayed is:
LANG=en_US.UTF-8

Select the displayed text by dragging mouse over it from right to left, such
that exactly this line is selected. Right-click on the selection.
Observe following exception:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1932)
at java.lang.String.substring(String.java:1905)
at org.eclipse.tm.internal.terminal.textcanvas.AbstractTextCanvasModel.getSelectedText(AbstractTextCanvasModel.java:244)
at org.eclipse.tm.internal.terminal.textcanvas.TextCanvas.getSelectionText(TextCanvas.java:198)
at org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl.getSelection(VT100TerminalControl.java:213)
at org.eclipse.tm.internal.terminal.view.TerminalView.updateEditCopy(TerminalView.java:340)
at org.eclipse.tm.internal.terminal.view.TerminalView$TerminalContextMenuHandler.menuAboutToShow(TerminalView.java:676)
at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:290)
at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:395)
at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:391)
at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:417)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:943)
at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:3981)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3698)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:291)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1554)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:1753)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4351)
at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:228)
at org.eclipse.swt.widgets.Display.runPopups(Display.java:3708)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3287)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
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:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)


-----------Enter bugs above this line-----------
TM 2.0.1 Testing
installation : eclipse-SDK-3.3.1 (M20070921-1145), cdt-4.0.1, emf-2.3.1
RSE install  : Download RSE-2.0.1: RSE-SDK,tests,discovery,terminal,remotecdt
java.runtime : Sun 1.6.0_02-b06
os.name:     : Windows XP 5.1, Service Pack 1
------------------------------------------------
systemtype   : Linux-ssh (RHEL4 osgiliath)
------------------------------------------------
Comment 1 Martin Oberhuber CLA 2007-09-27 08:08:38 EDT
Seen the same exception again after doing several different selections and left-clicking into an area not yet selected.

The problem happens intermediately; after getting it twice with 10 tries, I cannot reproduce it any more. I could not find any relation to what gets selected; perhaps it's a threading / timing issue?
Comment 2 Michael Scharf CLA 2007-09-27 08:49:56 EDT
the bounds are now checked...