From 36c096858dba391bae00e2eb88c284d388b8aaca Mon Sep 17 00:00:00 2001 From: Ben Alex Date: Wed, 26 Apr 2006 01:31:17 +0000 Subject: [PATCH] SEC-223: Improve hashCode() performance. --- .../providers/AbstractAuthenticationToken.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/acegisecurity/providers/AbstractAuthenticationToken.java b/core/src/main/java/org/acegisecurity/providers/AbstractAuthenticationToken.java index c18cef2f0a..fb5c687f55 100644 --- a/core/src/main/java/org/acegisecurity/providers/AbstractAuthenticationToken.java +++ b/core/src/main/java/org/acegisecurity/providers/AbstractAuthenticationToken.java @@ -146,10 +146,12 @@ public abstract class AbstractAuthenticationToken implements Authentication { public int hashCode() { int code = 31; - - if (this.getAuthorities() != null) { - for (int i = 0; i < this.getAuthorities().length; i++) { - code ^= this.getAuthorities()[i].hashCode(); + + // Copy authorities to local variable for performance (SEC-223) + GrantedAuthority[] authorities = this.getAuthorities(); + if (authorities != null) { + for (int i = 0; i < authorities.length; i++) { + code ^= authorities[i].hashCode(); } }