NetBeans IDE死锁

NetBeans IDE死锁,netbeans,deadlock,gui-builder,Netbeans,Deadlock,Gui Builder,在有人告诉我之前,我已经去了NetBeans bug报告社区。他们没有解决办法 在我使用的每个NetBeans IDE中,我有4个版本6.9、6.9.1、7.0,以及在多台计算机上的最新实验版本。每当我打开类JFrame、JDialog和Panel的GUI builder时,它们都会一致地、可预见地陷入死锁,除非是第一次打开该类的GUI builder。还有其他人遇到过这个问题吗?如果是的话,你有没有找到解决的办法 原因 我发现了原因,但仍然没有解决方案:在我的库的类BHFrame的initCo

在有人告诉我之前,我已经去了NetBeans bug报告社区。他们没有解决办法

在我使用的每个NetBeans IDE中,我有4个版本6.9、6.9.1、7.0,以及在多台计算机上的最新实验版本。每当我打开类JFrame、JDialog和Panel的GUI builder时,它们都会一致地、可预见地陷入死锁,除非是第一次打开该类的GUI builder。还有其他人遇到过这个问题吗?如果是的话,你有没有找到解决的办法

原因 我发现了原因,但仍然没有解决方案:在我的库的类BHFrame的initComponents方法中启动了一个新线程,它扩展了JFrame并使用NetBeans GUI Builder。NetBeans尝试在构建器中构建GUI时运行此方法,并锁定在无限等待循环中。NetBeans在线程转储期间报告此情况:

Found one Java-level deadlock:
=============================
"BHFrame.initComponents():  Setting up custColorsEditDialog":
  waiting to lock monitor 0x089178d4 (object 0x1ae148f8, a
javax.swing.MultiUIDefaults),
  which is held by "AWT-EventQueue-1"
"AWT-EventQueue-1":
  waiting to lock monitor 0x0868f6ec (object 0x1a310f18, a
java.awt.Component$AWTTreeLock),
  which is held by "BHFrame.initComponents():  Setting up custColorsEditDialog"

我删除了initComponents方法中产生的新线程,过了一段时间,一切都恢复正常。

它是否曾经走出死锁?我知道你说过你已经看过NB bug列表了,但是看看这是否对你有帮助,它没有帮助,因此术语死锁。有一次,我甚至让它运行了一天半。它还冻着另外,LOL看看提交它的用户的电子邮件。那就是我。让我说清楚,GUI生成器调用你的库类,它生成一个线程并调用GUI生成器?如果是这样的话,我并不觉得奇怪,因为它会导致死锁。当它启动GUI生成器时,它会查看我的BHFrame类的initComponents方法,并尝试运行它。在这个方法中,有一个名为BHFrame.initComponents的新线程:setup custcorseditdialog,它告诉线程AWT-EventQueue-1等待BHFrame.initComponents:setup custcorseditdialog线程完成,这反过来又等待AWT-EventQueue-1线程完成,它们陷入死锁。NetBeans在线程都完成并最终死锁之前不会响应。