Author: olamy
Date: Wed Aug 15 21:56:05 2012
New Revision: 1373648

URL: http://svn.apache.org/viewvc?rev=1373648&view=rev
Log:
use synchronized block only when data are not in the cache

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=1373648&r1=1373647&r2=1373648&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
 Wed Aug 15 21:56:05 2012
@@ -207,7 +207,7 @@ public class CachedRbacManager
      * @see 
org.apache.archiva.redback.rbac.RBACManager#getAssignedPermissionMap(java.lang.String)
      */
     @SuppressWarnings( "unchecked" )
-    public synchronized Map<String, List<Permission>> 
getAssignedPermissionMap( String principal )
+    public Map<String, List<Permission>> getAssignedPermissionMap( String 
principal )
         throws RbacObjectNotFoundException, RbacManagerException
     {
         Map<String, List<Permission>> el = (Map<String, List<Permission>>) 
userPermissionsCache.get( principal );
@@ -217,13 +217,14 @@ public class CachedRbacManager
             log.debug( "using cached user permission map" );
             return el;
         }
-        else
+        synchronized ( userPermissionsCache )
         {
             log.debug( "building user permission map" );
             Map<String, List<Permission>> userPermMap = 
this.rbacImpl.getAssignedPermissionMap( principal );
             userPermissionsCache.put( principal, userPermMap );
             return userPermMap;
         }
+
     }
 
     public Set<Permission> getAssignedPermissions( String principal )


Reply via email to