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 2017/03/27 16:35:32 UTC
[1/2] commons-pool git commit: Testing POOL-324
Repository: commons-pool
Updated Branches:
refs/heads/master b7d06237f -> 4e57e7767
Testing POOL-324
org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws
java.lang.ClassCastException
Project: http://git-wip-us.apache.org/repos/asf/commons-pool/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-pool/commit/68b86c2c
Tree: http://git-wip-us.apache.org/repos/asf/commons-pool/tree/68b86c2c
Diff: http://git-wip-us.apache.org/repos/asf/commons-pool/diff/68b86c2c
Branch: refs/heads/master
Commit: 68b86c2c2c9071e7a07f72645d39b658a210f955
Parents: b7d0623
Author: Gary Gregory <gg...@apache.org>
Authored: Mon Mar 27 09:31:30 2017 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Mon Mar 27 09:31:30 2017 -0700
----------------------------------------------------------------------
.../pool2/impl/TestGenericObjectPool.java | 61 ++++++++++
.../TestSynchronizedPooledObjectFactory.java | 119 +++++++++++++++++++
2 files changed, 180 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-pool/blob/68b86c2c/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
index 11a335d..f88b421 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
@@ -54,6 +54,7 @@ import org.apache.commons.pool2.WaiterFactory;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
/**
@@ -2643,4 +2644,64 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
return semaphore.hasQueuedThreads();
}
}
+
+ @Test
+ public void testGetFactoryType() {
+ GenericObjectPool<String> pool = new GenericObjectPool<String>(
+ new BasePooledObjectFactory<String>() {
+ @Override
+ public String create() {
+ // fake
+ return null;
+ }
+
+ @Override
+ public PooledObject<String> wrap(String obj) {
+ // fake
+ return null;
+ }
+ });
+ Assert.assertNotNull((pool.getFactoryType()));
+ }
+
+ @Test
+ @Ignore
+ public void testGetFactoryType_PoolUtilssynchronizedPooledFactory() {
+ GenericObjectPool<String> pool = new GenericObjectPool<String>(
+ PoolUtils.synchronizedPooledFactory(new BasePooledObjectFactory<String>() {
+ @Override
+ public String create() {
+ // fake
+ return null;
+ }
+
+ @Override
+ public PooledObject<String> wrap(String obj) {
+ // fake
+ return null;
+ }
+ }));
+ Assert.assertNotNull((pool.getFactoryType()));
+ }
+
+ @Test
+ @Ignore
+ public void testGetFactoryType_SynchronizedPooledObjectFactory() {
+ GenericObjectPool<String> pool = new GenericObjectPool<String>(
+ new TestSynchronizedPooledObjectFactory<String>(new BasePooledObjectFactory<String>() {
+ @Override
+ public String create() {
+ // fake
+ return null;
+ }
+
+ @Override
+ public PooledObject<String> wrap(String obj) {
+ // fake
+ return null;
+ }
+ }));
+ Assert.assertNotNull((pool.getFactoryType()));
+ }
+
}
http://git-wip-us.apache.org/repos/asf/commons-pool/blob/68b86c2c/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java b/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java
new file mode 100644
index 0000000..13d0b24
--- /dev/null
+++ b/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java
@@ -0,0 +1,119 @@
+package org.apache.commons.pool2.impl;
+
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
+
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.PooledObjectFactory;
+
+/**
+ * Copies PoolUtil's private static class SynchronizedPooledObjectFactory.
+ *
+ * A fully synchronized PooledObjectFactory that wraps a PooledObjectFactory and
+ * synchronizes access to the wrapped factory methods.
+ * <p>
+ * <b>Note:</b> This should not be used on pool implementations that already
+ * provide proper synchronization such as the pools provided in the Commons Pool
+ * library.
+ * </p>
+ */
+final class TestSynchronizedPooledObjectFactory<T> implements PooledObjectFactory<T> {
+
+ /** Synchronization lock */
+ private final WriteLock writeLock = new ReentrantReadWriteLock().writeLock();
+
+ /** Wrapped factory */
+ private final PooledObjectFactory<T> factory;
+
+ /**
+ * Create a SynchronizedPoolableObjectFactory wrapping the given factory.
+ *
+ * @param factory
+ * underlying factory to wrap
+ * @throws IllegalArgumentException
+ * if the factory is null
+ */
+ TestSynchronizedPooledObjectFactory(final PooledObjectFactory<T> factory) throws IllegalArgumentException {
+ if (factory == null) {
+ throw new IllegalArgumentException("factory must not be null.");
+ }
+ this.factory = factory;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public PooledObject<T> makeObject() throws Exception {
+ writeLock.lock();
+ try {
+ return factory.makeObject();
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void destroyObject(final PooledObject<T> p) throws Exception {
+ writeLock.lock();
+ try {
+ factory.destroyObject(p);
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean validateObject(final PooledObject<T> p) {
+ writeLock.lock();
+ try {
+ return factory.validateObject(p);
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void activateObject(final PooledObject<T> p) throws Exception {
+ writeLock.lock();
+ try {
+ factory.activateObject(p);
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void passivateObject(final PooledObject<T> p) throws Exception {
+ writeLock.lock();
+ try {
+ factory.passivateObject(p);
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append("SynchronizedPoolableObjectFactory");
+ sb.append("{factory=").append(factory);
+ sb.append('}');
+ return sb.toString();
+ }
+}
[2/2] commons-pool git commit: Testing POOL-324
Posted by gg...@apache.org.
Testing POOL-324
org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws
java.lang.ClassCastException
Project: http://git-wip-us.apache.org/repos/asf/commons-pool/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-pool/commit/4e57e776
Tree: http://git-wip-us.apache.org/repos/asf/commons-pool/tree/4e57e776
Diff: http://git-wip-us.apache.org/repos/asf/commons-pool/diff/4e57e776
Branch: refs/heads/master
Commit: 4e57e776793f89e45d0cb3051a7617f565e3fdc3
Parents: 68b86c2
Author: Gary Gregory <gg...@apache.org>
Authored: Mon Mar 27 09:35:29 2017 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Mon Mar 27 09:35:29 2017 -0700
----------------------------------------------------------------------
.../pool2/impl/TestGenericObjectPool.java | 59 +++++++-------------
1 file changed, 19 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-pool/blob/4e57e776/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
index f88b421..9bb48cb 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
@@ -2645,22 +2645,25 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
}
}
+ private BasePooledObjectFactory<String> createBasePooledObjectfactory() {
+ return new BasePooledObjectFactory<String>() {
+ @Override
+ public String create() {
+ // fake
+ return null;
+ }
+
+ @Override
+ public PooledObject<String> wrap(String obj) {
+ // fake
+ return null;
+ }
+ };
+ }
+
@Test
public void testGetFactoryType() {
- GenericObjectPool<String> pool = new GenericObjectPool<String>(
- new BasePooledObjectFactory<String>() {
- @Override
- public String create() {
- // fake
- return null;
- }
-
- @Override
- public PooledObject<String> wrap(String obj) {
- // fake
- return null;
- }
- });
+ GenericObjectPool<String> pool = new GenericObjectPool<String>(createBasePooledObjectfactory());
Assert.assertNotNull((pool.getFactoryType()));
}
@@ -2668,19 +2671,7 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
@Ignore
public void testGetFactoryType_PoolUtilssynchronizedPooledFactory() {
GenericObjectPool<String> pool = new GenericObjectPool<String>(
- PoolUtils.synchronizedPooledFactory(new BasePooledObjectFactory<String>() {
- @Override
- public String create() {
- // fake
- return null;
- }
-
- @Override
- public PooledObject<String> wrap(String obj) {
- // fake
- return null;
- }
- }));
+ PoolUtils.synchronizedPooledFactory(createBasePooledObjectfactory()));
Assert.assertNotNull((pool.getFactoryType()));
}
@@ -2688,19 +2679,7 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
@Ignore
public void testGetFactoryType_SynchronizedPooledObjectFactory() {
GenericObjectPool<String> pool = new GenericObjectPool<String>(
- new TestSynchronizedPooledObjectFactory<String>(new BasePooledObjectFactory<String>() {
- @Override
- public String create() {
- // fake
- return null;
- }
-
- @Override
- public PooledObject<String> wrap(String obj) {
- // fake
- return null;
- }
- }));
+ new TestSynchronizedPooledObjectFactory<String>(createBasePooledObjectfactory()));
Assert.assertNotNull((pool.getFactoryType()));
}