[jboss-cvs] Picketbox SVN: r234 - trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 6 14:38:52 EDT 2011


Author: mmoyses
Date: 2011-07-06 14:38:52 -0400 (Wed, 06 Jul 2011)
New Revision: 234

Modified:
   trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRole.java
   trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRoleGroup.java
Log:
SECURITY-603: fixing SimpleRole memory leak

Modified: trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRole.java
===================================================================
--- trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRole.java	2011-07-06 18:35:30 UTC (rev 233)
+++ trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRole.java	2011-07-06 18:38:52 UTC (rev 234)
@@ -99,4 +99,24 @@
    {
       return roleName;
    }
+   
+   @Override
+   public int hashCode()
+   {
+      int hashCode = roleName.hashCode();
+      if (parent != null)
+         hashCode += parent.hashCode();
+      return hashCode;
+   }
+
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (obj instanceof SimpleRole)
+      {
+         SimpleRole other = SimpleRole.class.cast(obj);
+         return parent != null ? (roleName.equals(other.roleName) && parent.equals(other.parent)) : (roleName.equals(other.roleName) && other.parent == null);
+      }
+      return false;
+   }
 }
\ No newline at end of file

Modified: trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRoleGroup.java
===================================================================
--- trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRoleGroup.java	2011-07-06 18:35:30 UTC (rev 233)
+++ trunk/security-jboss-sx/identity/src/main/java/org/jboss/security/identity/plugins/SimpleRoleGroup.java	2011-07-06 18:38:52 UTC (rev 234)
@@ -57,7 +57,7 @@
    public SimpleRoleGroup(String roleName, List<Role> roles)
    {
       super(roleName);
-      this.roles.addAll(roles);
+      addAll(roles);
    }
 
    public SimpleRoleGroup(Group rolesGroup)
@@ -66,7 +66,8 @@
       Enumeration<? extends Principal> principals = rolesGroup.members();
       while (principals.hasMoreElements())
       {
-         roles.add(new SimpleRole(principals.nextElement().getName()));
+         SimpleRole role = new SimpleRole(principals.nextElement().getName());
+         addRole(role);
       }
    }
 
@@ -75,7 +76,8 @@
       super(ROLES_IDENTIFIER);
       for (Principal p : rolesAsPrincipals)
       {
-         roles.add(new SimpleRole(p.getName()));
+         SimpleRole role = new SimpleRole(p.getName());
+         addRole(role);
       }
    }
 
@@ -95,7 +97,8 @@
     */
    public synchronized void addRole(Role role)
    {
-      this.roles.add(role);
+      if (!this.roles.contains(role))
+         this.roles.add(role);
    }
 
    /*
@@ -105,7 +108,15 @@
    public synchronized void addAll(List<Role> roles)
    {
       if (roles != null)
-         this.roles.addAll(roles);
+      {
+         for (Role role : roles)
+         {
+            if (!this.roles.contains(role))
+            {
+               this.roles.add(role);
+            }
+         }
+      }
    }
 
    /*



More information about the jboss-cvs-commits mailing list