directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r961544 - /directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java
Date Thu, 08 Jul 2010 00:29:55 GMT
Author: elecharny
Date: Thu Jul  8 00:29:55 2010
New Revision: 961544

URL: http://svn.apache.org/viewvc?rev=961544&view=rev
Log:
Added the cacheSize handling

Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java?rev=961544&r1=961543&r2=961544&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java
(original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryCache.java
Thu Jul  8 00:29:55 2010
@@ -94,7 +94,14 @@ public class SubentryCache
      */
     final Subentry removeSubentry( DN apDn )
     {
-        return  cache.remove( apDn.getNormName() );
+        Subentry oldSubentry = cache.remove( apDn.getNormName() );
+        
+        if ( oldSubentry != null )
+        {
+            cacheSize.decrementAndGet();
+        }
+        
+        return oldSubentry;
     }
     
     
@@ -108,12 +115,23 @@ public class SubentryCache
      */
     final Subentry addSubentry( DN apDn, SubtreeSpecification ss, Set<AdministrativeRole>
adminRoles )
     {
+        if ( cacheSize.get() > cacheMaxSize )
+        {
+            // TODO : Throw an exception here
+        }
+        
         Subentry oldSubentry = cache.get( apDn.getNormName() );
+        
         Subentry subentry = new Subentry();
         subentry.setSubtreeSpecification( ss );
         subentry.setAdministrativeRoles( adminRoles );
         cache.put( apDn.getNormName(), subentry );
         
+        if ( oldSubentry == null )
+        {
+            cacheSize.getAndIncrement();
+        }
+        
         return oldSubentry;
     }
     
@@ -136,4 +154,13 @@ public class SubentryCache
     {
         return cache.keySet().iterator();
     }
+    
+    
+    /**
+     * @return The number of elements in the cache
+     */
+    public int getCacheSize()
+    {
+        return cacheSize.get();
+    }
 }



Mime
View raw message