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());
}
/**