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 2010/06/24 10:31:36 UTC

svn commit: r957453 - in /incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util: CertificateGrant.java ClassLoaderGrant.java CodeSourceGrant.java PrincipalGrant.java ProtectionDomainGrant.java

Author: peter_firmstone
Date: Thu Jun 24 08:31:36 2010
New Revision: 957453

URL: http://svn.apache.org/viewvc?rev=957453&view=rev
Log:
River-340 Refactoring for hashCode performance improvement, calculate once during construction.

Modified:
    incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CertificateGrant.java
    incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ClassLoaderGrant.java
    incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CodeSourceGrant.java
    incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/PrincipalGrant.java
    incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ProtectionDomainGrant.java

Modified: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CertificateGrant.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CertificateGrant.java?rev=957453&r1=957452&r2=957453&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CertificateGrant.java (original)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CertificateGrant.java Thu Jun 24 08:31:36 2010
@@ -35,14 +35,20 @@ import java.util.List;
  */
 class CertificateGrant extends CodeSourceGrant {
     private final Collection<Certificate> certs;
+    private final int hashCode;
+    @SuppressWarnings("unchecked")
     CertificateGrant(Certificate[] codeSourceCerts, Principal[] pals, Permission[] perms){
         super(null, pals, perms);
          if (codeSourceCerts == null || codeSourceCerts.length == 0) {
-            certs = Collections.emptySet(); // Java 1.5
+            certs = Collections.EMPTY_SET;
         }else{
             certs = new HashSet<Certificate>(codeSourceCerts.length);
             certs.addAll(Arrays.asList(codeSourceCerts));
         }
+        int hash = 3;
+        hash = 83 * hash + (this.certs != null ? this.certs.hashCode() : 0);
+        hash = 83 * hash + (super.hashCode());
+        hashCode = hash;
     }
     
         @Override
@@ -59,10 +65,7 @@ class CertificateGrant extends CodeSourc
 
     @Override
     public int hashCode() {
-        int hash = 3;
-        hash = 83 * hash + (this.certs != null ? this.certs.hashCode() : 0);
-        hash = 83 * hash + (super.hashCode());
-        return hash;
+        return hashCode;
     }
     
     @Override

Modified: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ClassLoaderGrant.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ClassLoaderGrant.java?rev=957453&r1=957452&r2=957453&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ClassLoaderGrant.java (original)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ClassLoaderGrant.java Thu Jun 24 08:31:36 2010
@@ -28,11 +28,14 @@ import java.security.ProtectionDomain;
  * @author Peter Firmstone
  */
 class ClassLoaderGrant extends ProtectionDomainGrant implements PermissionGrant {
-
+    private final int hashCode;
     @SuppressWarnings("unchecked")
     ClassLoaderGrant(WeakReference<ProtectionDomain> domain, Principal[] groups, 
             Permission[] perm){
         super(domain, groups, perm);
+        int hash = 7;
+        hash = 19 * hash + super.hashCode();
+        hashCode = hash;
     }
     
         @Override
@@ -47,9 +50,7 @@ class ClassLoaderGrant extends Protectio
    
     @Override
     public int hashCode() {
-        int hash = 7;
-        hash = 19 * hash + super.hashCode();
-        return hash;
+        return hashCode;
     }     
 
     @Override

Modified: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CodeSourceGrant.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CodeSourceGrant.java?rev=957453&r1=957452&r2=957453&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CodeSourceGrant.java (original)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/CodeSourceGrant.java Thu Jun 24 08:31:36 2010
@@ -36,6 +36,7 @@ import java.util.List;
 class CodeSourceGrant extends PrincipalGrant {
     private final CodeSource cs;
     private final Collection<Permission> permissions;
+    private final int hashCode;
     
     CodeSourceGrant(CodeSource cs, Principal[] pals, Permission[] perm){
         super(pals);
@@ -45,16 +46,17 @@ class CodeSourceGrant extends PrincipalG
         }else{
             this.permissions = new HashSet<Permission>(perm.length);
             this.permissions.addAll(Arrays.asList(perm));
-        }        
-    }
-
-    @Override
-    public int hashCode() {
+        }
         int hash = 3;
         hash = 67 * hash + (this.cs != null ? this.cs.hashCode() : 0);
         hash = 67 * hash + (this.permissions != null ? this.permissions.hashCode() : 0);
         hash = 67 * hash + (super.hashCode());
-        return hash;
+        hashCode = hash;
+    }
+
+    @Override
+    public int hashCode() {
+        return hashCode;
     }
     
     @Override

Modified: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/PrincipalGrant.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/PrincipalGrant.java?rev=957453&r1=957452&r2=957453&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/PrincipalGrant.java (original)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/PrincipalGrant.java Thu Jun 24 08:31:36 2010
@@ -37,6 +37,7 @@ import java.util.List;
  */
 abstract class PrincipalGrant implements PermissionGrant {
     private final Collection<Principal> principals;
+    private final int hashCode;
     @SuppressWarnings("unchecked")
     protected PrincipalGrant(Principal[] pals){
         if ( pals != null ){
@@ -45,7 +46,9 @@ abstract class PrincipalGrant implements
         }else {
             principals = Collections.EMPTY_LIST;
         }
-
+        int hash = 5;
+        hash = 97 * hash + (this.principals != null ? this.principals.hashCode() : 0);
+        hashCode = hash;
     }
     
     @Override
@@ -61,9 +64,7 @@ abstract class PrincipalGrant implements
 
     @Override
     public int hashCode() {
-        int hash = 5;
-        hash = 97 * hash + (this.principals != null ? this.principals.hashCode() : 0);
-        return hash;
+        return hashCode;
     }
         
     public boolean implies(Principal[] prs) {

Modified: incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ProtectionDomainGrant.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ProtectionDomainGrant.java?rev=957453&r1=957452&r2=957453&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ProtectionDomainGrant.java (original)
+++ incubator/river/jtsk/trunk/src/org/apache/river/imp/security/policy/util/ProtectionDomainGrant.java Thu Jun 24 08:31:36 2010
@@ -38,6 +38,7 @@ class ProtectionDomainGrant extends Prin
     private final boolean hasDomain;
     private final WeakReference<ProtectionDomain> domain;
     private final Collection<Permission> permissions;
+    private final int hashCode;
     
     @SuppressWarnings("unchecked")
     ProtectionDomainGrant(WeakReference<ProtectionDomain> domain, Principal[] groups, 
@@ -55,6 +56,12 @@ class ProtectionDomainGrant extends Prin
             this.permissions = new HashSet<Permission>(perm.length);
             this.permissions.addAll(Arrays.asList(perm));
         }
+        int hash = 7;
+        hash = 13 * hash + (this.hasDomain ? 1 : 0);
+        hash = 13 * hash + (this.domain != null ? this.domain.hashCode() : 0);
+        hash = 13 * hash + (this.permissions != null ? this.permissions.hashCode() : 0);
+        hash = 13 * hash + super.hashCode();
+        hashCode = hash;
     }
     
     @Override
@@ -72,12 +79,7 @@ class ProtectionDomainGrant extends Prin
 
     @Override
     public int hashCode() {
-        int hash = 7;
-        hash = 13 * hash + (this.hasDomain ? 1 : 0);
-        hash = 13 * hash + (this.domain != null ? this.domain.hashCode() : 0);
-        hash = 13 * hash + (this.permissions != null ? this.permissions.hashCode() : 0);
-        hash = 13 * hash + super.hashCode();
-        return hash;
+        return hashCode;
     }
     
     /*