GenericObjectPool.setFactory(...) does not destroy idle pool objects with their
original factory object.
--------------------------------------------------------------------------------------------------------
Key: POOL-157
URL: https://issues.apache.org/jira/browse/POOL-157
Project: Commons Pool
Issue Type: Bug
Reporter: David Hu
Priority: Minor
When setting a new object factory, the existing idle poolable objects are not
destroyed by the same factory that created them.
1453 public void setFactory(PoolableObjectFactory factory) throws
IllegalStateException {
1454 List toDestroy = new ArrayList();
1455 synchronized (this) {
1456 assertOpen();
1457 if(0 < getNumActive()) {
1458 throw new IllegalStateException("Objects are already
active");
1459 } else {
1460 toDestroy.addAll(_pool);
1461 _numInternalProcessing = _numInternalProcessing +
_pool._size;
1462 _pool.clear();
1463 }
1464 _factory = factory;
1465 }
1466 destroy(toDestroy); // <----- indirectly calls
_factory.destroy(...) when _factory has already been replaced by the new
factory.
1467 }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.