[
https://issues.apache.org/jira/browse/RIVER-107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Peter Firmstone resolved RIVER-107.
-----------------------------------
Resolution: Fixed
Fix Version/s: River_3.0.0
DynamicPolicyProvider now utilises thread confinement and immutable
PermissionGrant's, PermissionCollection's are created on demand and discarded.
Permission's are now also dynamically ordered for optimum performance.
> DynamicPolicyProvider could use finer grained locking
> -----------------------------------------------------
>
> Key: RIVER-107
> URL: https://issues.apache.org/jira/browse/RIVER-107
> Project: River
> Issue Type: Improvement
> Components: net_jini_security
> Affects Versions: jtsk_2.1
> Reporter: Thomas Vinod Johnson
> Priority: Minor
> Fix For: River_3.0.0
>
>
> [6348797|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)