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.
Everytime I quit NetBeans with Matise GUI builder in focus it gets deadlocked when I try to start it again next time. The two offending threads are AWT-EventQueue which is waiting in a org.netbeans.api.java.source.JavaSource.runUserActionTask method & Java Source Worker Thread which is trying to initialize a org.netbeans.modules.progress.ui.StatusLineComponent. They get deadlocked on a UIDefaults Hashtable. Following are the two offending thread dumps: Name: Java Source Worker Thread State: BLOCKED on javax.swing.MultiUIDefaults@c1a0a6 owned by: AWT-EventQueue-1 Total blocked: 1 Total waited: 2 Stack trace: java.util.Hashtable.get(Hashtable.java:333) javax.swing.UIDefaults.getFromHashtable(UIDefaults.java:156) javax.swing.UIDefaults.get(UIDefaults.java:144) javax.swing.MultiUIDefaults.get(MultiUIDefaults.java:37) javax.swing.UIDefaults.getUI(UIDefaults.java:734) javax.swing.UIManager.getUI(UIManager.java:1014) javax.swing.JPanel.updateUI(JPanel.java:109) javax.swing.JPanel.<init>(JPanel.java:69) javax.swing.JPanel.<init>(JPanel.java:92) javax.swing.JPanel.<init>(JPanel.java:100) org.netbeans.modules.progress.ui.StatusLineComponent.<init>(StatusLineComponent.java:120) org.netbeans.modules.progress.ui.ProviderImpl.getDefaultWorker(ProviderImpl.java:59) org.netbeans.progress.module.Controller.getDefault(Controller.java:105) - locked java.lang.Class@3e4a4 org.netbeans.progress.spi.InternalHandle.start(InternalHandle.java:216) - locked org.netbeans.progress.spi.InternalHandle@58c0be org.netbeans.api.progress.ProgressHandle.start(ProgressHandle.java:94) org.netbeans.api.progress.ProgressHandle.start(ProgressHandle.java:74) org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:1270) org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker$1.run(RepositoryUpdater.java:1225) org.netbeans.modules.java.source.usages.ClassIndexManager.writeLock(ClassIndexManager.java:100) org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:1222) org.netbeans.modules.java.source.usages.RepositoryUpdater$CompileWorker.run(RepositoryUpdater.java:1187) org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1457) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:619) and Name: AWT-EventQueue-1 State: WAITING on java.util.concurrent.locks.ReentrantLock$FairSync@f89e13 owned by: Java Source Worker Thread Total blocked: 364 Total waited: 200 Stack trace: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747) java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778) java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114) java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:201) java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:581) org.netbeans.modules.swingapp.AppFrameworkSupport.getAppClassNameFromFile(AppFrameworkSupport.java:365) org.netbeans.modules.swingapp.AppFrameworkSupport.scanFolderForApplication(AppFrameworkSupport.java:343) org.netbeans.modules.swingapp.AppFrameworkSupport.scanFolderForApplication(AppFrameworkSupport.java:351) org.netbeans.modules.swingapp.AppFrameworkSupport.scanFolderForApplication(AppFrameworkSupport.java:351) org.netbeans.modules.swingapp.AppFrameworkSupport.scanFolderForApplication(AppFrameworkSupport.java:351) org.netbeans.modules.swingapp.AppFrameworkSupport.findApplicationClass(AppFrameworkSupport.java:328) org.netbeans.modules.swingapp.AppFrameworkSupport.getApplicationClassName(AppFrameworkSupport.java:211) org.netbeans.modules.swingapp.AppFrameworkSupport.getApplicationClassName(AppFrameworkSupport.java:170) org.netbeans.modules.swingapp.ResourceUtils.createDesignResourceMap(ResourceUtils.java:95) org.netbeans.modules.swingapp.ResourceUtils.getDesignResourceMap(ResourceUtils.java:126) org.netbeans.modules.swingapp.ResourceServiceImpl.get(ResourceServiceImpl.java:90) org.netbeans.modules.form.ResourceSupport.findResource0(ResourceSupport.java:775) org.netbeans.modules.form.ResourceSupport.findResource(ResourceSupport.java:771) org.netbeans.modules.form.ResourceSupport.findResource(ResourceSupport.java:767) org.netbeans.modules.form.GandalfPersistenceManager.loadProperty(GandalfPersistenceManager.java:2063) org.netbeans.modules.form.GandalfPersistenceManager.loadComponentProperties(GandalfPersistenceManager.java:1991) org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:852) org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:493) org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:260) org.netbeans.modules.form.FormEditor$3.run(FormEditor.java:297) org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:232) - locked javax.swing.MultiUIDefaults@c1a0a6 org.openide.util.Mutex.doEventAccess(Mutex.java:1223) org.openide.util.Mutex.readAccess(Mutex.java:284) org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:217) org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:295) - locked org.netbeans.modules.form.GandalfPersistenceManager@5ab76b org.netbeans.modules.form.FormEditor.loadFormDesigner(FormEditor.java:211) org.netbeans.modules.form.FormDesigner.componentShowing(FormDesigner.java:1739) org.netbeans.core.multiview.MultiViewPeer.peerComponentShowing(MultiViewPeer.java:198) org.netbeans.core.multiview.MultiViewCloneableTopComponent.componentShowing(MultiViewCloneableTopComponent.java:119) org.openide.windows.WindowManager.componentShowing(WindowManager.java:330) org.netbeans.core.windows.WindowManagerImpl.componentShowing(WindowManagerImpl.java:1016) org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:161) org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:269) org.netbeans.core.windows.ViewRequestor.processVisibilityRequest(ViewRequestor.java:258) org.netbeans.core.windows.ViewRequestor.postVisibilityRequest(ViewRequestor.java:195) org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:117) org.netbeans.core.windows.Central.setVisible(Central.java:118) org.netbeans.core.windows.WindowManagerImpl.setVisible(WindowManagerImpl.java:758) org.netbeans.core.windows.WindowSystemImpl.show(WindowSystemImpl.java:87) org.netbeans.core.NonGui$3.run(NonGui.java:210) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) java.awt.EventQueue.dispatchEvent(EventQueue.java:597) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:284) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
5er_levart, thanks for your report. What is the NB/JDK build verion/number ?
i suppose that Java Source Worker Thread should initialize swing components in EDT, reassigning.
The progress API is considered thread safe, to my knowledge. So it should not create components outside AWT Dispatch Thread.
Fix: http://hg.netbeans.org/core-main/rev/2c0b09e22d2d or http://hg.netbeans.org/main/rev/2c0b09e22d2d