Diff of /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java
Parent Directory
| Revision Log
| Patch
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java 2005/10/29 09:26:21 329381
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java 2005/10/29 09:45:10 329382
@@ -70,9 +70,13 @@ public class SoftReferenceObjectPool ext
SoftReference ref = (SoftReference)(_pool.remove(_pool.size() - 1));
obj = ref.get();
}
- }
- if(null != _factory && null != obj) {
- _factory.activateObject(obj);
+ if(null != _factory && null != obj) {
+ _factory.activateObject(obj);
+ }
+ if (null != _factory && null != obj && !_factory.validateObject(obj)) {
+ _factory.destroyObject(obj);
+ obj = null;
+ }
}
_numActive++;
return obj;