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;
}
/*