You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Peter Firmstone (JIRA)" <ji...@apache.org> on 2015/12/05 13:31:11 UTC

[jira] [Resolved] (RIVER-107) DynamicPolicyProvider could use finer grained locking

     [ 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)