Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
jtsk_2.1
-
None
-
6348797
Description
6348797
In certain situations, use of DebugDynamicPolicyProvider (a subclass of DynamicPolicyProvider) can lead to deadlocks. See for e.g.
http://archives.java.sun.com/cgi-bin/wa?A2=ind0511&L=jini-users&F=&S=&P=14611
This is in part due to the fact that DynamicPolicyProvider does some coarse grained synchronization (in this case the DomainPermissions.implies method). We should revisit this class to see if we can do more fine grained locking to improve concurrency and avoid deadlocks.
To completely disentangle calls to basePolicy from DynamicPolicyProvider synchronization, the call to basePolicy.getPermissions() within DomainPermissions.getPermissions() will also need to be shifted outside of synchronization.