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.
When iterating over proxyLookup.allInstances().iterator(), one should get iterative results, e.g. instances should be returned, if present, without calling beforeLookup on subsequent lookups, if their instances are not needed. This will solve most of issues with Lookup.getDefault().allInstances() that are searching for some particular instance, but not all of them (like ClassLoader in ImageUtilities and Notifier in masterfs).
Currently blocks propagation of changes from ergonomics repository as tests like org.netbeans.modules.settings.convertors.ConvertAsBeanTest.testReadWriteOnSubclass and org.netbeans.spi.settings.DOMConvertorTest.testCreateSetting_XML are failing due to deadlock between Lookup and AWT shutdown hook.
Group main Thread main at java.lang.Thread.dumpThreads(Thread.java:-2) at java.lang.Thread.getAllStackTraces(Thread.java:1530) at org.netbeans.junit.NbTestCase.threadDump(NbTestCase.java:302) at org.netbeans.junit.NbTestCase.access$000(NbTestCase.java:99) at org.netbeans.junit.NbTestCase$1Guard.waitFinished(NbTestCase.java:372) at org.netbeans.junit.NbTestCase.runBare(NbTestCase.java:430) at org.netbeans.junit.NbTestCase.run(NbTestCase.java:265) Thread Active Reference Queue Daemon at java.lang.Object.wait(Object.java:-2) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) at org.openide.util.lookup.implspi.ActiveQueue$Daemon.run(ActiveQueue.java:174) Thread AWT-XAWT at sun.awt.X11.XToolkit.waitForEvents(XToolkit.java:-2) at sun.awt.X11.XToolkit.run(XToolkit.java:579) at sun.awt.X11.XToolkit.run(XToolkit.java:543) at java.lang.Thread.run(Thread.java:662) Thread AWT-Shutdown at java.lang.Object.wait(Object.java:-2) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:265) at java.lang.Thread.run(Thread.java:662) Thread AWT-EventQueue-0 at java.lang.Object.wait(Object.java:-2) at java.lang.Object.wait(Object.java:485) at org.openide.util.Task.waitFinished(Task.java:133) at org.openide.util.RequestProcessor$Task.waitFinished(RequestProcessor.java:1667) at org.openide.loaders.FolderInstance.waitFinished(FolderInstance.java:332) at org.openide.loaders.FolderLookup$ProxyLkp.beforeLookup(FolderLookup.java:420) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:624) at org.openide.util.lookup.ProxyLookup$R.beforeLookup(ProxyLookup.java:647) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:634) at org.openide.util.lookup.ProxyLookup$R.access$600(ProxyLookup.java:332) at org.openide.util.lookup.ProxyLookup$LazyCollection.computeDelegate(ProxyLookup.java:1009) at org.openide.util.lookup.ProxyLookup$LazyCollection.delegate(ProxyLookup.java:1003) at org.openide.util.lookup.ProxyLookup$LazyCollection.iterator(ProxyLookup.java:1099) at org.openide.util.ImageUtilities.getLoader(ImageUtilities.java:339) at org.openide.util.ImageUtilities.getIcon(ImageUtilities.java:420) at org.openide.util.ImageUtilities.loadImage(ImageUtilities.java:132) at org.netbeans.swing.plaf.util.UIUtils.loadWithUtilities(UIUtils.java:153) at org.netbeans.swing.plaf.util.UIUtils.loadImage(UIUtils.java:125) at org.netbeans.swing.plaf.metal.MetalLFCustoms.createApplicationSpecificKeysAndValues(MetalLFCustoms.java:106) at org.netbeans.swing.plaf.LFCustoms.getApplicationSpecificKeysAndValues(LFCustoms.java:96) at org.netbeans.swing.plaf.Startup.installLFCustoms(Startup.java:325) at org.netbeans.swing.plaf.Startup.installPerLFDefaults(Startup.java:255) at org.netbeans.swing.plaf.Startup.install(Startup.java:236) at org.netbeans.swing.plaf.Startup.run(Startup.java:507) at org.netbeans.core.CoreBridgeImpl$1.run(CoreBridgeImpl.java:131) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641) at java.awt.EventQueue.access$000(EventQueue.java:84) at java.awt.EventQueue$1.run(EventQueue.java:602) at java.awt.EventQueue$1.run(EventQueue.java:600) at java.security.AccessController.doPrivileged(AccessController.java:-2) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:611) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Thread Test Watch Dog: testCreateSetting at java.lang.Object.wait(Object.java:-2) at java.lang.Object.wait(Object.java:485) at org.openide.util.Task.waitFinished(Task.java:133) at org.openide.util.RequestProcessor$Task.waitFinished(RequestProcessor.java:1667) at org.openide.loaders.FolderInstance.waitFinished(FolderInstance.java:332) at org.openide.loaders.FolderLookup$ProxyLkp.beforeLookup(FolderLookup.java:420) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:624) at org.openide.util.lookup.ProxyLookup$R.beforeLookup(ProxyLookup.java:647) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:634) at org.openide.util.lookup.ProxyLookup$R.access$600(ProxyLookup.java:332) at org.openide.util.lookup.ProxyLookup$LazyCollection.computeDelegate(ProxyLookup.java:1009) at org.openide.util.lookup.ProxyLookup$LazyCollection.delegate(ProxyLookup.java:1003) at org.openide.util.lookup.ProxyLookup$LazyCollection.toArray(ProxyLookup.java:1104) at java.util.ArrayList.addAll(ArrayList.java:472) at org.netbeans.core.NbLoaderPool.loaders(NbLoaderPool.java:754) at org.openide.loaders.DataLoaderPool.computeLoaders(DataLoaderPool.java:286) at org.openide.loaders.DataLoaderPool.allLoaders(DataLoaderPool.java:336) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:530) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:493) at org.openide.loaders.DataObject.find(DataObject.java:532) at org.openide.loaders.DataFolder.findFolder(DataFolder.java:540) at org.netbeans.spi.settings.DOMConvertorTest.testCreateSetting(DOMConvertorTest.java:87) at org.netbeans.junit.NbTestCase.access$200(NbTestCase.java:99) at org.netbeans.junit.NbTestCase$2.doSomething(NbTestCase.java:405) at org.netbeans.junit.NbTestCase$1Guard.run(NbTestCase.java:331) at java.lang.Thread.run(Thread.java:662) Thread Test Watch Dog: testCreateSetting_XML at org.netbeans.core.NbLoaderPool.loaders(NbLoaderPool.java:751) at org.openide.loaders.DataLoaderPool.computeLoaders(DataLoaderPool.java:286) at org.openide.loaders.DataLoaderPool.allLoaders(DataLoaderPool.java:336) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:530) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:493) at org.openide.loaders.DataObject.find(DataObject.java:532) at org.openide.loaders.DataFolder.findFolder(DataFolder.java:540) at org.netbeans.spi.settings.DOMConvertorTest.testCreateSetting_XML(DOMConvertorTest.java:119) at org.netbeans.junit.NbTestCase.access$200(NbTestCase.java:99) at org.netbeans.junit.NbTestCase$2.doSomething(NbTestCase.java:405) at org.netbeans.junit.NbTestCase$1Guard.run(NbTestCase.java:331) at java.lang.Thread.run(Thread.java:662) Thread Reference Handler at java.lang.Object.wait(Object.java:-2) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) Thread Finalizer at java.lang.Object.wait(Object.java:-2) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) Thread Signal Dispatcher Thread Java2D Disposer at java.lang.Object.wait(Object.java:-2) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at sun.java2d.Disposer.run(Disposer.java:127) at java.lang.Thread.run(Thread.java:662) Thread Folder recognizer at org.netbeans.core.NbLoaderPool.loaders(NbLoaderPool.java:751) at org.openide.loaders.DataLoaderPool.computeLoaders(DataLoaderPool.java:286) at org.openide.loaders.DataLoaderPool.allLoaders(DataLoaderPool.java:336) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:530) at org.openide.loaders.FolderList.createBoth(FolderList.java:799) at org.openide.loaders.FolderList.getObjects(FolderList.java:595) at org.openide.loaders.FolderList.access$200(FolderList.java:77) at org.openide.loaders.FolderList$ListTask.computeResult(FolderList.java:994) at org.openide.loaders.FolderList$ListTask.run(FolderList.java:970) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1411) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1991) Thread Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference] at java.lang.Object.wait(Object.java:-2) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1942) [junit] at org.netbeans.junit.NbTestCase$1Guard.waitFinished(NbTestCase.java:372) at org.netbeans.junit.NbTestCase.runBare(NbTestCase.java:430) at org.netbeans.junit.NbTestCase.run(NbTestCase.java:265)
Implemented on a branch http://hg.netbeans.org/ergonomics/rev/IterativeProxyIterator209322 and merged as 0eca64c241c3
Needs few more fixes and deserves a review for semantic incompatibility: http://hg.netbeans.org/ergonomics/rev/49f78bc9c543 Right now I am fixing 35 failed tests. Vladimir, can you check CND tests, please?
Running ant -f cnd.kit/misc-build.xml test seems to produce reasonable results. Seems OK in e12ef8061554.
Fixed issue link in apichanges: core-main #7d552aa694b8