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 2025/06/11 13:14:51 UTC
(commons-pool) branch master updated: Add org.apache.commons.pool2.PooledObject.getObject(PooledObject)
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 777ceda7 Add org.apache.commons.pool2.PooledObject.getObject(PooledObject)
777ceda7 is described below
commit 777ceda7fab0c60ea75452b8973dda170f079afd
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jun 11 09:14:47 2025 -0400
Add org.apache.commons.pool2.PooledObject.getObject(PooledObject)
---
.../org/apache/commons/pool3/PooledObject.java | 24 ++++++++++++++++------
.../org/apache/commons/pool3/PooledObjectTest.java | 9 ++++++++
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/apache/commons/pool3/PooledObject.java b/src/main/java/org/apache/commons/pool3/PooledObject.java
index e3b89cc5..43dc282e 100644
--- a/src/main/java/org/apache/commons/pool3/PooledObject.java
+++ b/src/main/java/org/apache/commons/pool3/PooledObject.java
@@ -34,25 +34,37 @@ import java.util.Deque;
public interface PooledObject<T> extends Comparable<PooledObject<T>> {
/**
- * Tests whether the given PooledObject is null <em>or</em> contains a null.
+ * Gets the wrapped object or null.
*
- * @param pooledObject the PooledObject to test.
- * @return whether the given PooledObject is null <em>or</em> contains a null.
+ * @param <T> the type of object in the pool.
+ * @param pooledObject the PooledObject to unwrap, may be null.
+ * @return the wrapped object or null.
+ * @since 2.13.0
+ */
+ static <T> T getObject(final PooledObject<T> pooledObject) {
+ return pooledObject != null ? pooledObject.getObject() : null;
+ }
+
+ /**
+ * Tests whether the given PooledObject is null <em>or</em> wraps a null.
+ *
+ * @param pooledObject the PooledObject to test, may be null.
+ * @return whether the given PooledObject is null <em>or</em> wraps a null.
* @since 2.12.0
*/
static boolean isNull(final PooledObject<?> pooledObject) {
- return pooledObject == null || pooledObject.getObject() == null;
+ return getObject(pooledObject) == null;
}
/**
* Tests whether the given PooledObject isn't null <em>and</em> doesn't wraps a null.
*
- * @param pooledObject the PooledObject to test.
+ * @param pooledObject the PooledObject to test, may be null.
* @return whether the given PooledObject isn't null <em>and</em> doesn't wraps a null.
* @since 2.13.0
*/
static boolean nonNull(final PooledObject<?> pooledObject) {
- return pooledObject != null && pooledObject.getObject() != null;
+ return getObject(pooledObject) != null;
}
/**
diff --git a/src/test/java/org/apache/commons/pool3/PooledObjectTest.java b/src/test/java/org/apache/commons/pool3/PooledObjectTest.java
index 81720119..4ba2fc62 100644
--- a/src/test/java/org/apache/commons/pool3/PooledObjectTest.java
+++ b/src/test/java/org/apache/commons/pool3/PooledObjectTest.java
@@ -18,6 +18,8 @@
package org.apache.commons.pool3;
import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.apache.commons.pool3.impl.DefaultPooledObject;
@@ -28,6 +30,13 @@ import org.junit.jupiter.api.Test;
*/
public class PooledObjectTest {
+ @Test
+ void testGetObject() {
+ assertNull(PooledObject.getObject(null));
+ assertNull(PooledObject.getObject(new DefaultPooledObject<>(null)));
+ assertNotNull(PooledObject.getObject(new DefaultPooledObject<>("a")));
+ }
+
@Test
void testIsNull() {
assertTrue(PooledObject.isNull(null));