dirkv 2003/08/12 15:46:09
Modified: pool/src/java/org/apache/commons/pool/impl
GenericObjectPool.java
Log:
Bugzilla Bug 22078
[DBCP] testOnBorrow fails if setAutoCommit() throws an exception
If activateObject throws an Exception and the object wasn't newly created
the Exception is now ignored, activation errors on new objects continue to
throw NoSuchElementException
Revision Changes Path
1.21 +24 -11
jakarta-commons/pool/src/java/org/apache/commons/pool/impl/GenericObjectPool.java
Index: GenericObjectPool.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/pool/src/java/org/apache/commons/pool/impl/GenericObjectPool.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- GenericObjectPool.java 22 Apr 2003 22:22:02 -0000 1.20
+++ GenericObjectPool.java 12 Aug 2003 22:46:09 -0000 1.21
@@ -754,15 +754,28 @@
}
}
}
- _factory.activateObject(pair.value);
- if(_testOnBorrow && !_factory.validateObject(pair.value)) {
- _factory.destroyObject(pair.value);
- if(newlyCreated) {
- throw new NoSuchElementException("Could not create a validated
object");
- } // else keep looping
- } else {
+
+ try {
+ _factory.activateObject(pair.value);
+ if(_testOnBorrow && !_factory.validateObject(pair.value)) {
+ throw new Exception("validateObject failed");
+ }
_numActive++;
return pair.value;
+ }
+ catch (Exception e) {
+ try {
+ _factory.destroyObject(pair.value);
+ }
+ catch (Exception e2) {
+ // cannot destroy broken object
+ }
+ if(newlyCreated) {
+ throw new NoSuchElementException("Could not create a validated
object");
+ }
+ else {
+ continue; // keep looping
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]