[jboss-cvs] JBossAS SVN: r67129 - projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 15 07:27:37 EST 2007
Author: wolfc
Date: 2007-11-15 07:27:37 -0500 (Thu, 15 Nov 2007)
New Revision: 67129
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java
Log:
JBAS-4506: fixed regression on security roles merge
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java 2007-11-15 12:08:54 UTC (rev 67128)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java 2007-11-15 12:27:37 UTC (rev 67129)
@@ -57,20 +57,8 @@
{
super.addNotification(added);
- Set<String> principals = added.getPrincipals();
- if(principals == null)
- return;
-
- for(String principal : principals)
- {
- Set<String> roles = principalVersusRolesMap.get(principal);
- if(roles == null)
- {
- roles = new HashSet<String>();
- principalVersusRolesMap.put(principal, roles);
- }
- roles.add(added.getRoleName());
- }
+ // update the roles map
+ processSecurityRoleMetaData(added);
}
public Map<String,Set<String>> getPrincipalVersusRolesMap()
@@ -157,8 +145,43 @@
}
}
}
+ // Take the easy way out
+ rebuildPrincipalsVersusRolesMap();
}
+ /**
+ * Add entries to principalVersusRolesMap for the specified role meta data.
+ *
+ * @param roleMetaData the security role meta data
+ */
+ private void processSecurityRoleMetaData(SecurityRoleMetaData roleMetaData)
+ {
+ Set<String> principals = roleMetaData.getPrincipals();
+ if(principals == null)
+ return;
+
+ for(String principal : principals)
+ {
+ Set<String> roles = principalVersusRolesMap.get(principal);
+ if(roles == null)
+ {
+ roles = new HashSet<String>();
+ principalVersusRolesMap.put(principal, roles);
+ }
+ roles.add(roleMetaData.getRoleName());
+ }
+ }
+
+ private void rebuildPrincipalsVersusRolesMap()
+ {
+ principalVersusRolesMap.clear();
+
+ for(SecurityRoleMetaData roleMetaData : this)
+ {
+ processSecurityRoleMetaData(roleMetaData);
+ }
+ }
+
@Override
protected void removeNotification(SecurityRoleMetaData removed)
{
More information about the jboss-cvs-commits
mailing list