Author: bcarothers
Date: 2009-12-30 15:39:00 -0500 (Wed, 30 Dec 2009)
New Revision: 1496
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
Log:
DNA-606 RepositoryConnectionPool Returns Invalid Connections to the Available Pool
Applied patch that turns on connection validation and modifies the validateConnection(...)
method to remove invalid connections from the in-use pool rather than returning them to
the available pool.
Modified:
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
===================================================================
---
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-12-30
20:18:42 UTC (rev 1495)
+++
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-12-30
20:39:00 UTC (rev 1496)
@@ -142,7 +142,7 @@
/**
* Flag specifying whether a connection should be validated before returning it from
the {@link #getConnection()} method.
*/
- private final AtomicBoolean validateConnectionBeforeUse = new AtomicBoolean(false);
+ private final AtomicBoolean validateConnectionBeforeUse = new AtomicBoolean(true);
/**
* The time in nanoseconds that ping should wait before timing out and failing.
@@ -648,7 +648,7 @@
if (runState == TERMINATED) return true;
if (nanos <= 0) return false;
nanos = termination.awaitNanos(nanos);
- //this.logger.trace("---> Done waiting: run state = {0};
condition = {1}, {2} open",runState,termination,poolSize)
+ // this.logger.trace("---> Done waiting: run state = {0};
condition = {1}, {2} open",runState,termination,poolSize)
// ;
}
} finally {
@@ -821,8 +821,15 @@
}
} finally {
if (invalidConnection != null) {
- connection = null;
- returnConnection(invalidConnection);
+ try {
+ mainLock.lock();
+ connection = null;
+ this.poolSize--;
+ this.inUseConnections.remove(connection);
+ // returnConnection(invalidConnection);
+ } finally {
+ mainLock.unlock();
+ }
}
}
return connection;
Show replies by date