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 207635 - Deadlock in WizardDescriptor$WizardPanel.setProgressComponent()
Summary: Deadlock in WizardDescriptor$WizardPanel.setProgressComponent()
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Dialogs&Wizards (show other bugs)
Version: 6.x
Hardware: PC Windows 7
: P2 normal (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-23 15:07 UTC by jmichelberger
Modified: 2012-03-27 10:33 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Deadlock stack. (6.81 KB, text/plain)
2012-01-23 15:07 UTC, jmichelberger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description jmichelberger 2012-01-23 15:07:20 UTC
Created attachment 115160 [details]
Deadlock stack.

WizardDescriptor.callInstantiateOpen() is called on RequestProcessor thread at Finish button of the wizard flow. In WizardDescriptor.callInstantiateOpen() there are direct calls to wizardPanel.setProgressComponent() and calls to showWaitCursor() and showNormalCursor() which maipulates swing component hierarchy not on AWTEventQueue. This is not correct and can lead to deadlocks.

See attached thread stacks.
Comment 1 Stanislav Aubrecht 2012-01-24 09:19:01 UTC
what are the steps to reproduce this?
Comment 2 jmichelberger 2012-01-24 10:23:04 UTC
I'm using a home grown library calld GDI for displaying data in swing components. These components are placed on wizard pages. Changes to the datamodel of my GDI components are posted to the AWT event queue and rendered in my components. Asynchronous intantiation of the wizard initiates a flushing of the selected items of my GDI components to a server and after all changes are acknowledged by the server these acks are also posted via AWT event queue to the GDI components still on the wizard pages. When the instantiate call in the wizard is finished, the wizard wants to remove the progress-label and progress-component form the left wizard panel. This removement is a manipulation of the swing hierarchy not executed on AWT event queue and can lead to suspicious effects. I can't post any example code to reproduce the deadlock, but the stack and the thread information should lead you to the correct places in code.
Comment 3 Stanislav Aubrecht 2012-03-27 10:33:18 UTC
core-main 62d6b5467170