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
     }