Author: brett
Date: Fri Aug 10 11:20:42 2012
New Revision: 1371658
URL: http://svn.apache.org/viewvc?rev=1371658&view=rev
Log:
[REDBACK-298] Concurrent modification to roles in Redback can cause incorrect
results to get cached
Modified:
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java
Modified:
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java
URL:
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java?rev=1371658&r1=1371657&r2=1371658&view=diff
==============================================================================
---
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java
(original)
+++
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java
Fri Aug 10 11:20:42 2012
@@ -208,7 +208,7 @@ public class CachedRbacManager
* @see
org.apache.archiva.redback.rbac.RBACManager#getAssignedPermissionMap(java.lang.String)
*/
@SuppressWarnings( "unchecked" )
- public Map getAssignedPermissionMap( String principal )
+ public synchronized Map getAssignedPermissionMap( String principal )
throws RbacObjectNotFoundException, RbacManagerException
{
Object el = userPermissionsCache.get( principal );
@@ -666,7 +666,7 @@ public class CachedRbacManager
return this.rbacImpl.saveResource( resource );
}
- public Role saveRole( Role role )
+ public synchronized Role saveRole( Role role )
throws RbacObjectInvalidException, RbacManagerException
{
/*
@@ -692,7 +692,7 @@ public class CachedRbacManager
return this.rbacImpl.saveRole( role );
}
- public void saveRoles( Collection<Role> roles )
+ public synchronized void saveRoles( Collection<Role> roles )
throws RbacObjectInvalidException, RbacManagerException
{