You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sa...@apache.org on 2006/03/30 07:42:46 UTC
svn commit: r389995 - in
/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite:
CompositeKeyedObjectPool.java CompositeObjectPool.java
CompositeObjectPoolFactory.java
Author: sandymac
Date: Wed Mar 29 21:42:45 2006
New Revision: 389995
URL: http://svn.apache.org/viewcvs?rev=389995&view=rev
Log:
Removed clone support from the CompositeObjectPools as it
didn't handle all corner cases and didn't provide any real benefit.
Modified:
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java?rev=389995&r1=389994&r2=389995&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeKeyedObjectPool.java Wed Mar 29 21:42:45 2006
@@ -440,28 +440,6 @@
}
/**
- * Creates a new keyed object pool with the same settings as this one. The new instance will not contian any
- * existing idle objects nor should you return active objects to it.
- *
- * @return a new keyed object pool with the same settings.
- */
- public Object clone() throws CloneNotSupportedException {
- if (!getClass().equals(CompositeKeyedObjectPool.class)) {
- throw new CloneNotSupportedException("Subclasses must not call super.clone()");
- }
- if (poolFactory instanceof CompositeObjectPoolFactory) {
- final PoolableObjectFactory pof = ((CompositeObjectPoolFactory)poolFactory).getFactory();
- if (pof instanceof KeyedPoolableObjectFactoryAdapter) {
- final KeyedPoolableObjectFactory kopf = ((KeyedPoolableObjectFactoryAdapter)pof).getDelegate();
- final CompositeObjectPoolFactory opf = (CompositeObjectPoolFactory)((CompositeObjectPoolFactory)poolFactory).clone();
- opf.setFactory(new KeyedPoolableObjectFactoryAdapter(kopf));
- return new CompositeKeyedObjectPool(opf);
- }
- }
- return new CompositeKeyedObjectPool(poolFactory);
- }
-
- /**
* The {@link ThreadLocal} keys is not serializable and final, must create a new instance for this to be correct.
*/
private Object readResolve() throws ObjectStreamException {
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java?rev=389995&r1=389994&r2=389995&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPool.java Wed Mar 29 21:42:45 2006
@@ -441,17 +441,4 @@
sb.append('}');
return sb.toString();
}
-
- /**
- * Create a new pool with the same settings. Active or Idle objects are not shared with the new pool.
- *
- * @return a new {@link CompositeObjectPool} with the same configuration.
- * @throws CloneNotSupportedException when this pool was contstucted without a factoryConfig.
- */
- public Object clone() throws CloneNotSupportedException {
- if (factoryConfig == null) {
- throw new CloneNotSupportedException("Cloning not supported without a factoryConfig.");
- }
- return CompositeObjectPoolFactory.createPool(factoryConfig);
- }
}
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java?rev=389995&r1=389994&r2=389995&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/composite/CompositeObjectPoolFactory.java Wed Mar 29 21:42:45 2006
@@ -694,7 +694,13 @@
* @throws CloneNotSupportedException if {@link Object#clone()} does.
*/
public Object clone() throws CloneNotSupportedException {
- return super.clone();
+ final CompositeObjectPoolFactory copf = (CompositeObjectPoolFactory)super.clone();
+ // Cannot share KeyedPoolableObjectFactoryAdapter between instances because of ThreadLocal usage
+ if (copf.factory instanceof KeyedPoolableObjectFactoryAdapter) {
+ KeyedPoolableObjectFactoryAdapter kpofa = (KeyedPoolableObjectFactoryAdapter)copf.factory;
+ copf.factory = new KeyedPoolableObjectFactoryAdapter(kpofa.getDelegate());
+ }
+ return copf;
}
public String toString() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org