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 2023/07/14 23:26:40 UTC

[commons-pool] branch master updated: Simplify removeClearedReferences()

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 597c0680 Simplify removeClearedReferences()
597c0680 is described below

commit 597c06804cef8b3b02cc954ac654b636c3f70acf
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 14 19:26:36 2023 -0400

    Simplify removeClearedReferences()
---
 .../commons/pool2/impl/SoftReferenceObjectPool.java | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

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 b1c6ae81..2b183ffb 100644
--- a/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
+++ b/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
@@ -20,7 +20,7 @@ import java.lang.ref.Reference;
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.SoftReference;
 import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.Collection;
 import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Optional;
@@ -337,24 +337,19 @@ public class SoftReferenceObjectPool<T, E extends Exception> extends BaseObjectP
      */
     private void pruneClearedReferences() {
         // Remove wrappers for enqueued references from idle and allReferences lists
-        removeClearedReferences(idleReferences.iterator());
-        removeClearedReferences(allReferences.iterator());
+        removeClearedReferences(idleReferences);
+        removeClearedReferences(allReferences);
         while (refQueue.poll() != null) { // NOPMD
         }
     }
 
     /**
-     * Clears cleared references from iterator's collection
-     * @param iterator iterator over idle/allReferences
+     * Clears cleared references from the collection.
+     *
+     * @param collection collection of idle/allReferences
      */
-    private void removeClearedReferences(final Iterator<PooledSoftReference<T>> iterator) {
-        PooledSoftReference<T> ref;
-        while (iterator.hasNext()) {
-            ref = iterator.next();
-            if (ref.getReference() == null || ref.getReference().isEnqueued()) {
-                iterator.remove();
-            }
-        }
+    private void removeClearedReferences(final Collection<PooledSoftReference<T>> collection) {
+        collection.removeIf(ref -> ref.getReference() == null || ref.getReference().isEnqueued());
     }
 
     /**