This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit f8c7109a51e568d062750259c2b90cc191f12e57
Author: Thomas Vandahl <[email protected]>
AuthorDate: Wed Feb 11 14:35:33 2026 +0100

    Clean up
---
 .../commons/jcs4/utils/struct/AbstractLRUMap.java  | 71 +++++++++++-----------
 .../jcs4/utils/struct/LRUElementDescriptor.java    | 10 +--
 .../apache/commons/jcs4/utils/struct/LRUMap.java   | 16 ++---
 3 files changed, 46 insertions(+), 51 deletions(-)

diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/AbstractLRUMap.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/AbstractLRUMap.java
index 404dffd7..8dcaca55 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/AbstractLRUMap.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/AbstractLRUMap.java
@@ -20,7 +20,6 @@ package org.apache.commons.jcs4.utils.struct;
  */
 
 import java.util.AbstractMap;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
@@ -30,9 +29,7 @@ import java.util.concurrent.locks.ReentrantLock;
 import java.util.stream.Collectors;
 
 import org.apache.commons.jcs4.engine.control.group.GroupAttrName;
-import org.apache.commons.jcs4.engine.stats.StatElement;
 import org.apache.commons.jcs4.engine.stats.Stats;
-import org.apache.commons.jcs4.engine.stats.behavior.IStatElement;
 import org.apache.commons.jcs4.engine.stats.behavior.IStats;
 import org.apache.commons.jcs4.log.Log;
 
@@ -134,7 +131,7 @@ public abstract class AbstractLRUMap<K, V>
      * Dump the cache entries from first to list for debugging.
      */
     @SuppressWarnings("unchecked") // No generics for public fields
-    public void dumpCacheEntries()
+    private void dumpCacheEntries()
     {
         if (log.isTraceEnabled())
         {
@@ -149,7 +146,7 @@ public abstract class AbstractLRUMap<K, V>
     /**
      * Dump the cache map for debugging.
      */
-    public void dumpMap()
+    private void dumpMap()
     {
         if (log.isTraceEnabled())
         {
@@ -196,27 +193,35 @@ public abstract class AbstractLRUMap<K, V>
 
         log.debug( "getting item  for key {0}", key );
 
-        final LRUElementDescriptor<K, V> me = map.get( key );
-
-        if ( me == null )
-        {
-            missCnt++;
-            retVal = null;
-        }
-        else
+        lock.lock();
+        try
         {
-            hitCnt++;
-            retVal = me.getPayload();
-            list.makeFirst( me );
-        }
+            final LRUElementDescriptor<K, V> me = map.get( key );
 
-        if ( me == null )
-        {
-            log.debug( "LRUMap miss for {0}", key );
+            if ( me == null )
+            {
+                missCnt++;
+                retVal = null;
+            }
+            else
+            {
+                hitCnt++;
+                retVal = me.getPayload();
+                list.makeFirst( me );
+            }
+
+            if ( me == null )
+            {
+                log.debug( "LRUMap miss for {0}", key );
+            }
+            else
+            {
+                log.debug( "LRUMap hit for {0}", key );
+            }
         }
-        else
+        finally
         {
-            log.debug( "LRUMap hit for {0}", key );
+            lock.unlock();
         }
 
         // verifyCache();
@@ -258,18 +263,12 @@ public abstract class AbstractLRUMap<K, V>
      */
     public IStats getStatistics()
     {
-        final IStats stats = new Stats();
-        stats.setTypeName( "LRUMap" );
-
-        final ArrayList<IStatElement<?>> elems = new ArrayList<>();
-
-        elems.add(new StatElement<>( "List Size", Integer.valueOf(list.size()) 
) );
-        elems.add(new StatElement<>( "Map Size", Integer.valueOf(map.size()) ) 
);
-        elems.add(new StatElement<>( "Put Count", Long.valueOf(putCnt) ) );
-        elems.add(new StatElement<>( "Hit Count", Long.valueOf(hitCnt) ) );
-        elems.add(new StatElement<>( "Miss Count", Long.valueOf(missCnt) ) );
-
-        stats.setStatElements( elems );
+        final IStats stats = new Stats("LRUMap");
+        stats.addStatElement("List Size", Integer.valueOf(list.size()));
+        stats.addStatElement("Map Size", Integer.valueOf(map.size()));
+        stats.addStatElement("Put Count", Long.valueOf(putCnt));
+        stats.addStatElement("Hit Count", Long.valueOf(hitCnt));
+        stats.addStatElement("Miss Count", Long.valueOf(missCnt));
 
         return stats;
     }
@@ -353,7 +352,8 @@ public abstract class AbstractLRUMap<K, V>
                 try
                 {
                     final LRUElementDescriptor<K, V> last = list.getLast();
-                    if (last == null) {
+                    if (last == null)
+                    {
                         verifyCache();
                         throw new Error("update: last is null!");
                     }
@@ -454,6 +454,7 @@ public abstract class AbstractLRUMap<K, V>
     }
 
     /**
+     * Test method
      * Checks to see if all the items that should be in the cache are. Checks 
consistency between
      * List and map.
      */
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUElementDescriptor.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUElementDescriptor.java
index 255424bc..51609e37 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUElementDescriptor.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUElementDescriptor.java
@@ -39,7 +39,7 @@ public class LRUElementDescriptor<K, V>
     public LRUElementDescriptor(final K key, final V payloadP)
     {
         super(payloadP);
-        this.setKey(key);
+        this.key = key;
     }
 
     /**
@@ -49,12 +49,4 @@ public class LRUElementDescriptor<K, V>
     {
         return key;
     }
-
-    /**
-     * @param key The key to set.
-     */
-    public void setKey(final K key)
-    {
-        this.key = key;
-    }
 }
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUMap.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUMap.java
index 2e24f542..936d1293 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUMap.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/struct/LRUMap.java
@@ -20,7 +20,7 @@ package org.apache.commons.jcs4.utils.struct;
  */
 
 /**
- *         Simple LRUMap implementation that keeps the number of the objects 
below or equal maxObjects
+ * Simple LRUMap implementation that keeps the number of the objects below or 
equal maxObjects
  *
  * @param <K>
  * @param <V>
@@ -28,25 +28,27 @@ package org.apache.commons.jcs4.utils.struct;
 public class LRUMap<K, V> extends AbstractLRUMap<K, V>
 {
     /** If the max is less than 0, there is no limit! */
-    private int maxObjects = -1;
+    private final int maxObjects;
 
+    /**
+     * Default constructor
+     */
     public LRUMap()
     {
+        this(-1);
     }
 
     /**
-     *
-     * @param maxObjects
-     *            maximum number to keep in the map
+     * @param maxObjects maximum number to keep in the map
      */
     public LRUMap(final int maxObjects)
     {
-        this();
+        super();
         this.maxObjects = maxObjects;
     }
 
     @Override
-    public boolean shouldRemove()
+    protected boolean shouldRemove()
     {
         return maxObjects > 0 && size() > maxObjects;
     }

Reply via email to