This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-pool.git
commit f370532e9c30b6574e6e31a2c0cc063aec4306da Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Sun Aug 7 09:37:11 2022 -0400 Use forEach and streams - Be more specific with local and private types for IDEs and static analysis. --- .../commons/pool2/impl/GenericKeyedObjectPool.java | 36 ++++++++-------------- .../commons/pool2/impl/GenericObjectPool.java | 4 +-- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java index aece8351..7e03146c 100644 --- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java @@ -193,7 +193,6 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener private static final String ONAME_BASE = "org.apache.commons.pool2:type=GenericKeyedObjectPool,name="; - //--- configuration attributes --------------------------------------------- private volatile int maxIdlePerKey = GenericKeyedObjectPoolConfig.DEFAULT_MAX_IDLE_PER_KEY; @@ -637,7 +636,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener public void clearOldest() { // build sorted map of idle objects - final Map<PooledObject<T>, K> map = new TreeMap<>(); + final TreeMap<PooledObject<T>, K> map = new TreeMap<>(); poolMap.forEach((key, value) -> { // Each item into the map using the PooledObject object as the @@ -1189,14 +1188,10 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener @Override public Map<String, Integer> getNumActivePerKey() { - final HashMap<String, Integer> result = new HashMap<>(); - - poolMap.forEach((key, objectDequeue) -> { - result.put(key.toString(), Integer.valueOf( - objectDequeue.getAllObjects().size() - - objectDequeue.getIdleObjects().size())); - }); - return result; + return poolMap.entrySet().stream().collect(Collectors.toMap( + e -> e.getKey().toString(), + e -> Integer.valueOf(e.getValue().getAllObjects().size() - e.getValue().getIdleObjects().size()), + (t, u) -> u)); } @Override @@ -1204,9 +1199,6 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener return poolMap.values().stream().mapToInt(e -> e.getIdleObjects().size()).sum(); } - - //--- JMX support ---------------------------------------------------------- - @Override public int getNumIdle(final K key) { final ObjectDeque<T> objectDeque = poolMap.get(key); @@ -1214,7 +1206,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } /** - * Calculate the number of objects to test in a run of the idle object + * Gets the number of objects to test in a run of the idle object * evictor. * * @return The number of objects to test for validity @@ -1229,7 +1221,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } /** - * Return an estimate of the number of threads currently blocked waiting for + * Gets an estimate of the number of threads currently blocked waiting for * an object from the pool. This is intended for monitoring only, not for * synchronization control. * @@ -1246,7 +1238,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } /** - * Return an estimate of the number of threads currently blocked waiting for + * Gets an estimate of the number of threads currently blocked waiting for * an object from the pool for each key. This is intended for * monitoring only, not for synchronization control. * @@ -1256,12 +1248,9 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener @Override public Map<String, Integer> getNumWaitersByKey() { final Map<String, Integer> result = new HashMap<>(); - - for (final Entry<K, ObjectDeque<T>> entry : poolMap.entrySet()) { - final K k = entry.getKey(); - final ObjectDeque<T> deque = entry.getValue(); - result.put(k.toString(), getBlockWhenExhausted() ? Integer.valueOf(deque.getIdleObjects().getTakeQueueLength()) : ZERO); - } + poolMap.forEach((k, deque) -> result.put(k.toString(), getBlockWhenExhausted() ? + Integer.valueOf(deque.getIdleObjects().getTakeQueueLength()) : + ZERO)); return result; } @@ -1274,7 +1263,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener } /** - * Checks to see if there are any threads currently waiting to borrow + * Tests to see if there are any threads currently waiting to borrow * objects but are blocked waiting for more objects to become available. * * @return {@code true} if there is at least one thread waiting otherwise @@ -1351,7 +1340,6 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener @Override public Map<String, List<DefaultPooledObjectInfo>> listAllObjects() { final Map<String, List<DefaultPooledObjectInfo>> result = new HashMap<>(); - poolMap.forEach((k, v) -> result.put(k.toString(), v.getAllObjects().values().stream().map(DefaultPooledObjectInfo::new).collect(Collectors.toList()))); return result; } diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java index 1e105cc2..006aeccf 100644 --- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java +++ b/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java @@ -18,7 +18,6 @@ package org.apache.commons.pool2.impl; import java.time.Duration; import java.util.ArrayList; -import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -102,8 +101,7 @@ public class GenericObjectPool<T, E extends Exception> extends BaseGenericObject * #_maxActive}. Map keys are pooled objects, values are the PooledObject * wrappers used internally by the pool. */ - private final Map<IdentityWrapper<T>, PooledObject<T>> allObjects = - new ConcurrentHashMap<>(); + private final ConcurrentHashMap<IdentityWrapper<T>, PooledObject<T>> allObjects = new ConcurrentHashMap<>(); /* * The combined count of the currently created objects and those in the