| Summary: | [terminal][telnet] NullPointerException in Terminal | ||
|---|---|---|---|
| Product: | [Tools] Target Management | Reporter: | Nils Hagge <nils.hagge> |
| Component: | Terminal | Assignee: | dsdp.tm.core-inbox <tm.core-inbox> |
| Status: | CLOSED DUPLICATE | QA Contact: | Martin Oberhuber <mober.at+eclipse> |
| Severity: | normal | ||
| Priority: | P3 | CC: | eclipse, mober.at+eclipse |
| Version: | 3.1 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
*** This bug has been marked as a duplicate of bug 288254 *** |
Build ID: M20090211-1700 (Eclipse) Component: TM-terminal-3.0.2.zip Steps To Reproduce: Open several Telnet Terminals and "play around". After some playing with connect and disconnect. The disconnect command seems to be ignored. It turns out that it caused a NullPointerException. I analyzed the code and found a contradictious method implementation in [Plugin org.eclipse.tm.terminal.telnet] package org.eclipse.tm.internal.terminal.telnet; class TelnetConnector { .... Line 84: public boolean isLocalEcho() { if(fTelnetConnection!=null) return false; return fTelnetConnection.localEcho(); } ... } Im am pretty sure the author intended to implement the following: public boolean isLocalEcho() { return fTelnetConnection != null && fTelnetConnection.localEcho(); } which defaults to "false" alternatively public boolean isLocalEcho() { return fTelnetConnection == null || fTelnetConnection.localEcho(); } would default to "true" More information: The stacktrace: java.lang.NullPointerException at org.eclipse.tm.internal.terminal.telnet.TelnetConnector.isLocalEcho(TelnetConnector.java:84) at org.eclipse.tm.internal.terminal.connector.TerminalConnector.isLocalEcho(TerminalConnector.java:165) at org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl$TerminalKeyHandler.keyPressed(VT100TerminalControl.java:897) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:155) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1352) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3894) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:341) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3787) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2371) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3420) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212)