You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2012/01/14 11:40:15 UTC
svn commit: r1231477 -
/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java
Author: peter_firmstone
Date: Sat Jan 14 10:40:15 2012
New Revision: 1231477
URL: http://svn.apache.org/viewvc?rev=1231477&view=rev
Log:
Ensure DelegateCombinerSecurityManager only calls refresh on the Policy if absolutely necessary.
Modified:
river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java
Modified: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java?rev=1231477&r1=1231476&r2=1231477&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/DelegateCombinerSecurityManager.java Sat Jan 14 10:40:15 2012
@@ -23,6 +23,7 @@ import java.security.AccessController;
import java.security.DomainCombiner;
import java.security.Guard;
import java.security.Permission;
+import java.security.Policy;
import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
import java.security.SecurityPermission;
@@ -121,8 +122,10 @@ extends SecurityManager implements Deleg
new ThreadPoolExecutor.CallerRunsPolicy());
permCompare = RC.comparator(new PermissionComparator());
logger = Logger.getLogger(DelegateCombinerSecurityManager.class.getName());
- // Get the policy & refresh, in case it hasn't been initialized.
- java.security.Policy.getPolicy().refresh(); // Investigate some other way of ensuring the policy is instantiated.
+ // Get the policy & refresh, if it hasn't been initialized.
+ Policy policy = java.security.Policy.getPolicy();
+ // This is to avoid unnecessarily refreshing the policy.
+ if (!policy.implies(context[0], (Permission) createAccPerm)) policy.refresh();
// Bug ID: 7093090 Reduce synchronization in java.security.Policy.getPolicyNoCheck
}