Community
Participate
Working Groups
When both the TM Legacy Terminal and the new TCF Terminals are installed, it looks like the TCF Terminals plugin introduces the legacy "local" connector as a side-effect. When trying to use that one, an IllegalArgumentException happens as per below. Steps to Reproduce: 1. Install JEE Luna M7 Package on Windows 32-bit: http://eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunam7 2. Launch JEE Package, Window > Show View > Terminal and try to connect a session eg SSH. It should not show the "Local" connector. 3. Help > Install New Software... and add the TCF Terminals from: http://download.eclipse.org/tools/tcf/terminals_beta 4. From Legacy Terminal View, try connecting again. It now shows a "Local" connector. Enter something in the Fields eg Image Path=C:\Cygwin\bin\bash.exe Arguments=-i 5. Click OK --> UnhandledEventLoopException is logged with IllegalArgumentException: java.lang.IllegalArgumentException at org.eclipse.core.internal.preferences.legacy.PreferenceForwarder.setValue(PreferenceForwarder.java:685) at org.eclipse.tm.internal.terminal.provisional.api.PreferenceSettingStore.put(PreferenceSettingStore.java:50) at org.eclipse.tm.internal.terminal.view.SettingStorePrefixDecorator.put(SettingStorePrefixDecorator.java:32) at org.eclipse.tcf.te.ui.terminals.process.ProcessSettings.save(ProcessSettings.java:289) at org.eclipse.tcf.te.ui.terminals.process.ProcessConnector.save(ProcessConnector.java:271) at org.eclipse.tm.internal.terminal.connector.TerminalConnector.save(TerminalConnector.java:190) at org.eclipse.tm.internal.terminal.view.TerminalView.saveSettings(TerminalView.java:524) at org.eclipse.tm.internal.terminal.view.TerminalView.showSettingsDialog(TerminalView.java:360) at org.eclipse.tm.internal.terminal.view.TerminalView.onTerminalConnect(TerminalView.java:282) at org.eclipse.tm.internal.terminal.actions.TerminalActionConnect.run(TerminalActionConnect.java:37) at org.eclipse.jface.action.Action.runWithEvent(Action.java:519) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:462) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1152) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1033) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:635) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:578) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:233) 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.equinox.launcher.Main.invokeFramework(Main.java:648) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Hi Martin, "Local" is not the legacy "Local" connector, it is the native TCF Terminals "Local" connector type. This one should be never visible with the legacy TM Terminal view. http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=3d4e340abdaf178eebe5e25f0b44b5e583ab75e0
Ah, I see ... thanks ! Anyways I found that even for our "Local Terminal Console" it might be a good idea to allow user optionally specify an Image Path and Arguments in the "New Terminal" dialog. That way, one could open either a CMD terminal or a Cygwin terminal or whatever other app somebody wants. What do you think , shall I file an Enhancement request ?
Feel free to do so. Will not be hard to get as it is supported by the underlying connector, it's just not exposed to the user.