This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
This is a common IZ for all known problems with "Debugger Console" window in "cnd" module. So far I see 3 problems. ---------------------------------------------------------------------------- Problem 1: Contextual menu does not work. There are only two items: "Hide Text" (disabled) and "More Info", which is enabled, but it does not do anything. It is supposed to show additional information about selected text in Dynamic Help window. ---------------------------------------------------------------------------- Problem 2: Text field "Command" does not fill the full width. This text field should occupy the space between label "Command" and the right side of the "Debugger Console" window. ---------------------------------------------------------------------------- Problem 3: IllegalStateException. If "gdb" session cannot start (f.e. "gdb" is not found), "Debugger Console" window is closed, but there is a an assertion in WindowManagerImpl.java:1136, which causes exception: // PENDING Just temporary until all 'bad' calls are really put into AWT thread. static void assertEventDispatchThreadWeak() { if(!SwingUtilities.isEventDispatchThread()) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, new IllegalStateException("Assertion failed. " + ASSERTION_ERROR_MESSAGE)); // NOI18N } } INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentIsOpened(WindowManagerImpl.java:1066) at org.openide.windows.TopComponent.isOpened(TopComponent.java:326) at org.openide.windows.TopComponent.isOpened(TopComponent.java:318) at org.openide.windows.TopComponent.close(TopComponent.java:341) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentIsOpened(WindowManagerImpl.java:1066) at org.openide.windows.TopComponent.isOpened(TopComponent.java:326) at org.openide.windows.TopComponent.isOpened(TopComponent.java:318) at org.openide.windows.TopComponent.canClose(TopComponent.java:358) at org.openide.windows.TopComponent.close(TopComponent.java:345) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:996) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentIsOpened(WindowManagerImpl.java:1066) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:998) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentIsOpened(WindowManagerImpl.java:1066) at org.openide.windows.TopComponent.isOpened(TopComponent.java:326) at org.openide.windows.TopComponent.isOpened(TopComponent.java:318) at org.openide.windows.TopComponent.canClose(TopComponent.java:358) at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:726) at org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:336) at org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:218) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1005) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentID(WindowManagerImpl.java:1078) at org.openide.windows.WindowManager.findTopComponentID(WindowManager.java:452) at org.netbeans.core.windows.model.TopComponentSubModel.getID(TopComponentSubModel.java:303) at org.netbeans.core.windows.model.TopComponentSubModel.removeTopComponent(TopComponentSubModel.java:193) at org.netbeans.core.windows.model.DefaultModeModel.removeTopComponent(DefaultModeModel.java:101) at org.netbeans.core.windows.model.DefaultModel.removeModeTopComponent(DefaultModel.java:529) at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:730) at org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:336) at org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:218) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1005) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentID(WindowManagerImpl.java:1078) at org.openide.windows.WindowManager.findTopComponentID(WindowManager.java:452) at org.netbeans.core.windows.model.TopComponentSubModel.getID(TopComponentSubModel.java:303) at org.netbeans.core.windows.model.TopComponentSubModel.adjustSelectedTopComponent(TopComponentSubModel.java:236) at org.netbeans.core.windows.model.TopComponentSubModel.removeTopComponent(TopComponentSubModel.java:198) at org.netbeans.core.windows.model.DefaultModeModel.removeTopComponent(DefaultModeModel.java:101) at org.netbeans.core.windows.model.DefaultModel.removeModeTopComponent(DefaultModel.java:529) at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:730) at org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:336) at org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:218) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1005) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) INFORMATIONAL *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.IllegalStateException: Assertion failed. WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThreadWeak(WindowManagerImpl.java:1136) at org.netbeans.core.windows.WindowManagerImpl.topComponentID(WindowManagerImpl.java:1078) at org.openide.windows.WindowManager.findTopComponentID(WindowManager.java:452) at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:731) at org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:336) at org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:218) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1005) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) *********** Exception occurred ************ at 4:41 PM on Jul 17, 2006 java.lang.AssertionError: WindowsAPI is required to be called from AWT thread only, see http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/threading.html at org.netbeans.core.windows.WindowManagerImpl.assertEventDispatchThread(WindowManagerImpl.java:1130) at org.netbeans.core.windows.ModeImpl.getSelectedTopComponent(ModeImpl.java:243) at org.netbeans.core.windows.Central.removeModeTopComponent(Central.java:785) at org.netbeans.core.windows.ModeImpl.removeTopComponent(ModeImpl.java:336) at org.netbeans.core.windows.ModeImpl.close(ModeImpl.java:218) at org.netbeans.core.windows.WindowManagerImpl.topComponentClose(WindowManagerImpl.java:1005) at org.openide.windows.TopComponent.close(TopComponent.java:346) at org.openide.windows.TopComponent.close(TopComponent.java:333) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyVL.closeDebuggerConsole(GdbProxyVL.java:95) at org.netbeans.modules.cnd.debugger.gdb.GdbProxyCL.startDebugging(GdbProxyCL.java:175) at org.netbeans.modules.cnd.debugger.gdb.GdbProxy.startDebugging(GdbProxy.java:88) at org.netbeans.modules.cnd.debugger.gdb.GdbDebuggerImpl.startDebugger(GdbDebuggerImpl.java:69) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider.doAction(StartActionsProvider.java:71) at org.netbeans.modules.cnd.debugger.gdb.actions.StartActionsProvider$1.run(StartActionsProvider.java:119) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:493) [catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:926) ----------------------------------------------------------------------------
Problem 3 is fixed (great thanks to Vladimir Voskresensky for the suggested fix!). The suggested fix is to use SwingUtilities.invokeLater() to call closeDebuggerConsole() from AWT thread. The fix is integrated in "cnd-nb50-dev" branch. Tag: cnd-nb50-dev User: NikMolchanov Date: 2006/07/18 08:56:12 Modified: cnd/gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbProxyCL.java Log: IZ 80446 *Gdb-lite* Debugger Console window Fixed Problem 3: - "close console" must be done in AWT thread File Changes: Directory: /cnd/gdb/src/org/netbeans/modules/cnd/debugger/gdb/ ============================================================== File [changed]: GdbProxyCL.java Url: http://cnd.netbeans.org/source/browse/cnd/gdb/src/org/netbeans/modules/cnd/debugger/gdb/GdbProxyCL.java?r1=1.1.2.33&r2=1.1.2.34 Delta lines: +8 -4 ------------------- --- GdbProxyCL.java 18 Jul 2006 01:34:39 -0000 1.1.2.33 +++ GdbProxyCL.java 18 Jul 2006 15:56:10 -0000 1.1.2.34 @@ -19,11 +19,11 @@ package org.netbeans.modules.cnd.debugger.gdb; -import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Vector; +import javax.swing.SwingUtilities; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; @@ -171,8 +171,12 @@ String dir = "/tmp"; // NOI18N gdbProxy.gdbProxyML.executeExternalCommand(cmd, dir, 0); } - // close console - // gdbProxy.gdbProxyVL.closeDebuggerConsole(); // IZ 80446 Problem 3. + // close console (must be done in AWT thread) + SwingUtilities.invokeLater(new Runnable() { + public void run() { + gdbProxy.gdbProxyVL.closeDebuggerConsole(); + } + }); } else { debuggerStatus = STARTING; } ----------------------------------------------------------------
Priority is downgraded to P4 because the most critical problems are fixed.
For unknown reason this issue got status "New". Changed it back to "Started".
Fixed. Nik fixed problem 3 a long time ago. I removed the context menu, which fixed problem 1. I also fixed the text field width in problem 2.