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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]