Product Version = NetBeans IDE Dev (Build 200804301203)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_04; Java HotSpot(TM) Client VM 10.0-b19; Sun Microsystems Inc.
Runtime = Java(TM) SE Runtime Environment 1.6.0_04-b12
- I started NB and got Exception
- clicked button Report...
- entered my issuezilla login and password
- after submitting NB hangs
Created attachment 60899 [details]
Created attachment 60900 [details]
Reassigning to "logger" for evaluation.
I guess the major problem is that FolderLookup fires changes in the Folder Recognizer thread. Then "foreign" code runs
on that thread and can cause deadlocks.
Changes in Utilities (compatible) and one (semantically incompatible) change in Data Systems to prevent this deadlock
seems to be needed.
Created attachment 63166 [details]
The changes in o.o.u look fine.
Is there any expected impact on testability of modules that rely on FolderLookup to find critical bits of
infrastructure? I know changes are already fired in a different thread from the main application logic ("Folder
recognizer"); will moving test firing to a new RequestProcessor job cause tests which were previously predictable to
Are there known deadlocks of this type relating to non-FolderLookup Lookup's? I guess that would only happen during
dynamic module en/disabling, which is rare these days since Plugin Manager no longer supports it.
Re. unpredictability: Potentially yes, if someone is waiting for changes to be notified, then those may be
delivered "later". On the other hand, for those calling allInstances, there is no difference. Changes are visible
Re. other lookups: MetaInfServices lookup had few deadlocks of this style (e.g. getters firing events). However not
recently. Moreover I am a bit afraid to change it. It would be switch synch -> asynch, while in case of FolderLookup
it is just asynch -> more asynch.
user: Jaroslav Tulach <firstname.lastname@example.org>
date: Fri Jun 27 09:57:55 2008 +0200
summary: #134297: Ability to asynchronously notify listeners when lookup is being changed
Integrated into 'main-golden', available in NB_Trunk_Production #295 build
User: Jaroslav Tulach <email@example.com>
Log: #134297: Ability to asynchronously notify listeners when lookup is being changed