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.

Bug 27062 - Attach to debugee action freezes UI (responsiveness)
Summary: Attach to debugee action freezes UI (responsiveness)
Status: CLOSED FIXED
Alias: None
Product: debugger
Classification: Unclassified
Component: Code (show other bugs)
Version: 3.x
Hardware: PC Linux
: P2 blocker (vote)
Assignee: issues@debugger
URL:
Keywords: PERFORMANCE, UI
Depends on:
Blocks: 26581 27780 34160
  Show dependency tree
 
Reported: 2002-09-05 17:16 UTC by Jaroslav Tulach
Modified: 2010-04-29 09:11 UTC (History)
1 user (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaroslav Tulach 2002-09-05 17:16:07 UTC
Whenever I try to attach to debug other instance
of NetBeans the UI freezes. Seems that too much
work is done in AWT thread. Please move it to some
RequestProcessor.



"AWT-EventQueue-0" prio=1 tid=0x0x8245348
nid=0x1aa0 waiting on monitor [bdffe000..bdfff8ac]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at
org.openide.util.Task.waitFinished(Task.java:85)
        - locked <0x461bd600> (a
org.netbeans.modules.java.parser.ParsingSupport$Processor$T)
        at
org.netbeans.modules.java.parser.SourceImplProxy.findModelDelegate(SourceImplProxy.java:292)
        at
org.netbeans.modules.java.parser.SourceImplProxy.safeFindModelDelegate(SourceImplProxy.java:304)
        at
org.netbeans.modules.java.parser.SourceImplProxy.getClass(SourceImplProxy.java:156)
        at
org.openide.src.SourceElement.getClass(SourceElement.java:235)
        at
org.netbeans.modules.java.ClassElementFinder.findInSource(ClassElementFinder.java:120)
        at
org.netbeans.modules.java.ClassElementFinder.findClassInFile(ClassElementFinder.java:223)
        at
org.netbeans.modules.java.ClassElementFinder.find(ClassElementFinder.java:182)
        at
org.openide.src.ClassElement.forName(ClassElement.java:934)
        at
org.netbeans.modules.debugger.support.util.Utils.getLineSet(Utils.java:463)
        at
org.netbeans.modules.debugger.support.util.Utils.getLine(Utils.java:447)
        at
org.netbeans.modules.debugger.support.java.JavaLineBreakpointEvent.setLineNumber(JavaLineBreakpointEvent.java:331)
        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:324)
        at
org.openide.nodes.PropertySupport$Reflection.setValue(PropertySupport.java:216)
        at
org.netbeans.modules.debugger.multisession.SessionBreakpoint.synchronizeProperties(SessionBreakpoint.java:201)
        at
org.netbeans.modules.debugger.multisession.SessionBreakpoint.addEventForDebugger(SessionBreakpoint.java:245)
        at
org.netbeans.modules.debugger.multisession.SessionBreakpoint.addDebugger(SessionBreakpoint.java:257)
        at
org.netbeans.modules.debugger.multisession.EnterpriseDebugger.addEvents(EnterpriseDebugger.java:496)
        at
org.netbeans.modules.debugger.multisession.EnterpriseDebugger.access$300(EnterpriseDebugger.java:54)
        at
org.netbeans.modules.debugger.multisession.EnterpriseDebugger$SessionListener.propertyChange(EnterpriseDebugger.java:748)
        at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:252)
        at
org.netbeans.modules.debugger.support.SecondaryDebuggerSupport.firePropertyChange(SecondaryDebuggerSupport.java:380)
        at
org.netbeans.modules.debugger.support.SecondaryDebuggerSupport.setState(SecondaryDebuggerSupport.java:148)
        at
org.netbeans.modules.debugger.support.java.JavaDebugger.setState(JavaDebugger.java:410)
        at
org.netbeans.modules.debugger.jpda.JPDADebugger.setState(JPDADebugger.java:992)
        - locked <0x45d8fdf0> (a
org.netbeans.modules.debugger.jpda.JPDADebugger)
        at
org.netbeans.modules.debugger.jpda.JPDADebugger.startDebugger(JPDADebugger.java:778)
        at
org.netbeans.modules.debugger.jpda.JPDADebugger.startDebugger(JPDADebugger.java:273)
        - locked <0x4a9f1d40> (a java.lang.Class)
        at
org.netbeans.modules.debugger.multisession.EnterpriseDebugger.startDebugger(EnterpriseDebugger.java:220)
        at
org.netbeans.modules.debugger.support.actions.ConnectAction$ConnectListener.actionPerformed(ConnectAction.java:131)
        at
org.netbeans.core.NbPresenter$ButtonListener.actionPerformed(NbPresenter.java:941)
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)
        at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
        at
javax.swing.plaf.basic.BasicRootPaneUI$DefaultAction.actionPerformed(BasicRootPaneUI.java:155)
        at
javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1502)
        at
javax.swing.JComponent.processKeyBinding(JComponent.java:2422)
        at
javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:253)
        at
javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:202)
        at
javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2499)
        at
javax.swing.JComponent.processKeyBindings(JComponent.java:2491)
        at
javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
        at
javax.swing.JComboBox.processKeyEvent(JComboBox.java:1349)
        at
java.awt.Component.processEvent(Component.java:4830)
        at
java.awt.Container.processEvent(Container.java:1380)
        at
java.awt.Component.dispatchEventImpl(Component.java:3526)
        at
java.awt.Container.dispatchEventImpl(Container.java:1437)
        at
java.awt.Component.dispatchEvent(Component.java:3367)
        at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1700)
        at
java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:568)
        at
java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:739)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:673)
        at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:534)
        at
java.awt.Component.dispatchEventImpl(Component.java:3396)
        at
java.awt.Container.dispatchEventImpl(Container.java:1437)
        at
java.awt.Window.dispatchEventImpl(Window.java:1566)
        at
java.awt.Component.dispatchEvent(Component.java:3367)
        at
java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:190)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:134)
        at java.awt.Dialog.show(Dialog.java:524)
        at
org.netbeans.core.NbPresenter.superShow(NbPresenter.java:688)
        at
org.netbeans.core.NbPresenter.run(NbPresenter.java:721)
        at
org.openide.util.Mutex$1.run(Mutex.java:931)
        at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:171)
        at
java.awt.EventQueue.dispatchEvent(EventQueue.java:443)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:190)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
        at
java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
Comment 1 Jan Jancura 2002-09-06 15:33:29 UTC
accepted.
p2-p4
not a performance problem, your solution will be slower..
Comment 2 Jaroslav Tulach 2002-09-12 16:54:13 UTC
Acording to performance team, this issue is (percieved) performance
problem and as such both keyword and priority is ok. But I was also
told that the right strategy is to mark it as task and assign to
Trung. He will turn it into a bug later after evaluation.
Comment 3 _ pkuzel 2002-11-11 10:39:29 UTC
Categorizing. I guess it is candidate for UI change. User anyway needs
to wait for action result. In meantime a fancy dialog can be shown.
Comment 4 _ pkuzel 2002-11-13 13:17:35 UTC
Proposed implementation: display in status bar text: Please wait
debugger is attaching to external program... and set global cursor to
busy one.
Comment 5 David-john Burrowes 2002-12-03 20:39:16 UTC
I'm not set up to reproduce this problem easily.  How long is the
delay between issueing the attach command and the action completing? 
Is this fractions of a second? a couple seconds?  15 seconds?
Comment 6 dpavlica 2003-01-17 17:55:05 UTC
Could somebody check and send here any concerete time of this freezes ??

If I understood there exist allready basic feedbacks about this
process in Output window and at the Status line too. There are two texts:
1.Connecting to host
2.Connection estabilished

I agree with displaying wait cursor during Attaching.
Comment 7 _ ttran 2003-01-20 11:04:11 UTC
how comes I am owner of this issue?  Reassign back to the default
module owner
Comment 8 Jaroslav Tulach 2003-01-20 12:55:50 UTC
Trung you are owner because you asked me to make you owner to help to
resolve that issue. 

Btw. the freeze is about five seconds, during that time no UI works
(even repainting is blocked). The original issue requests that
repainting is enabled. Whatever fancy UI you add is up to you, I just
want the repainting to work.


Comment 9 Jan Jancura 2003-01-21 09:42:40 UTC
fixed in the main trunk
- attaching moved to different thread
- notify added to status line
- cursor changed
Comment 10 Quality Engineering 2010-04-29 09:11:17 UTC
Verified ... and Closing all issues resolved into NetBeans 6.7 and earlier.