You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/08/14 12:42:43 UTC

[commons-pool] branch master updated: * Chain Stream (#89)

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


The following commit(s) were added to refs/heads/master by this push:
     new 8ff8f5a  * Chain Stream (#89)
8ff8f5a is described below

commit 8ff8f5ab7a64de07dfdbc5a7e4ad621ba592408b
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Sat Aug 14 14:42:39 2021 +0200

    * Chain Stream (#89)
    
    * Replace For loop with map.forEach
    * Inline variable
---
 .../commons/pool2/impl/GenericKeyedObjectPool.java | 23 ++++++++++------------
 .../pool2/impl/SoftReferenceObjectPool.java        |  2 +-
 2 files changed, 11 insertions(+), 14 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 fd1934b..d9ca745 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
@@ -625,14 +625,13 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
         // build sorted map of idle objects
         final Map<PooledObject<T>, K> map = new TreeMap<>();
 
-        poolMap.entrySet().forEach(entry -> {
-            final ObjectDeque<T> deque = entry.getValue();
+        poolMap.forEach((key, value) -> {
             // Protect against possible NPE if key has been removed in another
             // thread. Not worth locking the keys while this loop completes.
-            if (deque != null) {
+            if (value != null) {
                 // Each item into the map using the PooledObject object as the
                 // key. It then gets sorted based on the idle time
-                deque.getIdleObjects().forEach(p -> map.put(p, entry.getKey()));
+                value.getIdleObjects().forEach(p -> map.put(p, key));
             }
         });
 
@@ -1257,7 +1256,7 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
      *         {@code false}
      */
     private boolean hasBorrowWaiters() {
-        return poolMap.values().stream().filter(deque -> deque != null && deque.getIdleObjects().hasTakeWaiters()).findFirst().isPresent();
+        return poolMap.values().stream().anyMatch(deque -> deque != null && deque.getIdleObjects().hasTakeWaiters());
     }
 
     /**
@@ -1330,11 +1329,9 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
     public Map<String, List<DefaultPooledObjectInfo>> listAllObjects() {
         final Map<String, List<DefaultPooledObjectInfo>> result = new HashMap<>();
 
-        poolMap.entrySet().forEach(entry -> {
-            final K k = entry.getKey();
-            final ObjectDeque<T> deque = entry.getValue();
-            if (deque != null) {
-                result.put(k.toString(), deque.getAllObjects().values().stream().map(DefaultPooledObjectInfo::new).collect(Collectors.toList()));
+        poolMap.forEach((k, value) -> {
+            if (value != null) {
+                result.put(k.toString(), value.getAllObjects().values().stream().map(DefaultPooledObjectInfo::new).collect(Collectors.toList()));
             }
         });
         return result;
@@ -1408,16 +1405,16 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
      */
     @SuppressWarnings("resource") // The PrintWriter is managed elsewhere
     private void removeAbandoned(final AbandonedConfig abandonedConfig) {
-        poolMap.entrySet().forEach(pool -> {
+        poolMap.forEach((key, value) -> {
             // Generate a list of abandoned objects to remove
-            final ArrayList<PooledObject<T>> remove = createRemoveList(abandonedConfig, pool.getValue().getAllObjects());
+            final ArrayList<PooledObject<T>> remove = createRemoveList(abandonedConfig, value.getAllObjects());
             // Now remove the abandoned objects
             remove.forEach(pooledObject -> {
                 if (abandonedConfig.getLogAbandoned()) {
                     pooledObject.printStackTrace(abandonedConfig.getLogWriter());
                 }
                 try {
-                    invalidateObject(pool.getKey(), pooledObject.getObject(), DestroyMode.ABANDONED);
+                    invalidateObject(key, pooledObject.getObject(), DestroyMode.ABANDONED);
                 } catch (final Exception e) {
                     swallowException(e);
                 }
diff --git a/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java b/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
index 5a3b526..868bfcf 100644
--- a/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
@@ -291,7 +291,7 @@ public class SoftReferenceObjectPool<T> extends BaseObjectPool<T> {
     private PooledSoftReference<T> findReference(final T obj) {
         final Optional<PooledSoftReference<T>> first = allReferences.stream()
                 .filter(reference -> reference.getObject() != null && reference.getObject().equals(obj)).findFirst();
-        return first.isPresent() ? first.get() : null;
+        return first.orElse(null);
     }
 
     /**