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; }
