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.
[ BUILD # : 4576818452de ] [ JDK VERSION : 1.6.* ] Deadlock when opening some Matisse files.
*** Bug 185043 has been marked as a duplicate of this bug. ***
Created attachment 98077 [details] Thread dump
This is the second bug which forces me to work with 6.8 in this NetCAT :( I just can't found any workaround for it.
I can reproduce this with Windows 7 64 bit.
Created attachment 98079 [details] stack trace
We have SwingX components at our palette as well our own components and some of them are used at UI which we can reproduce the problem.
Created attachment 98080 [details] SwingX binaries I attached the binaries for SwingX which we use.
This issue is few days old. It was introduced by fix of issue 184551 that attempts to load GUI Builder's Palette outside event-dispatch thread. Unfortunately, SwingX components attempt to modify UIDefaults in their static initializer, i.e., in a thread that loads their class. Details: Request Processor thread (loading the class) - locks Introspector to find BeanInfo - locks UIDefaults to modify them AWT thread (loading form) - locks UIDefaults when entering form-laf block - locks Introspector when trying to determine component properties I will try to keep the issue 184551 fixed and find a workaround for this unfortunate case. We can revert the fix of issue 184551 if no workaround is available.
Created attachment 98101 [details] Test case: Ugly.java
Created attachment 98102 [details] Test case: UglyBeanInfo.java
Created attachment 98103 [details] Test case: Ugly2.java
While it is clear what is wrong in this issue, I wasn't able to reproduce it using a regular components from some GUI library (like SwingX). It seems to be hard to meet the right race conditions on my machine. Hence, I created an artificial test-case that can be used to reproduce this problem (see the attachments). It is sufficient to add Ugly2 component into the form and Ugly component into the Palette (UglyBeanInfo must be placed such that it can be found by Introspector).
Fixed - FormLAF now takes also Introspector.class lock. Modified file: http://hg.netbeans.org/cdev/rev/d6076d241513
Integrated into 'main-golden', will be available in build *201004280200* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/ User: Log:
v. 100428-1268a0167db6