rwaldhoff 2003/03/13 10:52:44
Modified: pool/src/java/org/apache/commons/pool/impl
GenericObjectPool.java
Log:
apply Quinton McCombs's javadoc and cleanup patch
see <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17963>
Revision Changes Path
1.16 +33 -47
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.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- GenericObjectPool.java 7 Mar 2003 20:28:36 -0000 1.15
+++ GenericObjectPool.java 13 Mar 2003 18:52:44 -0000 1.16
@@ -157,10 +157,10 @@
* </li>
* </ul>
* <p>
- * GenericObjectPool is not usable without a [EMAIL PROTECTED]
PoolableObjectFactory}. A
+ * GenericObjectPool is not usable without a [EMAIL PROTECTED]
PoolableObjectFactory}. A
* non-<code>null</code> factory must be provided either as a constructor argument
* or via a call to [EMAIL PROTECTED] #setFactory} before the pool is used.
- *
+ *
* @see GenericKeyedObjectPool
* @author Rodney Waldhoff
* @version $Revision$ $Date$
@@ -622,7 +622,7 @@
* Sets the number of objects to examine during each run of the
* idle object evictor thread (if any).
* <p>
- * When a negative value is supplied, <tt>ceil([EMAIL PROTECTED]
#numIdle})/abs([EMAIL PROTECTED] #getNumTestsPerEvictionRun})</tt>
+ * When a negative value is supplied, <tt>ceil([EMAIL PROTECTED]
#getNumIdle})/abs([EMAIL PROTECTED] #getNumTestsPerEvictionRun})</tt>
* tests will be run. I.e., when the value is <i>-n</i>, roughly one
<i>n</i>th of the
* idle objects will be tested per run.
*
@@ -713,7 +713,8 @@
// if there are any sleeping, just grab one of those
try {
pair = (ObjectTimestampPair)(_pool.removeFirst());
- } catch(NoSuchElementException e) { /* ignored */
+ } catch(NoSuchElementException e) {
+ ; /* ignored */
}
// otherwise
if(null == pair) {
@@ -753,11 +754,6 @@
}
_factory.activateObject(pair.value);
if(_testOnBorrow && !_factory.validateObject(pair.value)) {
- try {
- _factory.passivateObject(pair.value);
- } catch(Exception e) {
- ; // ignored, we're throwing it out anyway
- }
_factory.destroyObject(pair.value);
} else {
_numActive++;
@@ -775,8 +771,7 @@
public synchronized void clear() {
assertOpen();
- Iterator it = _pool.iterator();
- while(it.hasNext()) {
+ for(Iterator it = _pool.iterator(); it.hasNext(); ) {
try {
_factory.destroyObject(((ObjectTimestampPair)(it.next())).value);
} catch(Exception e) {
@@ -858,67 +853,58 @@
assertOpen();
if(!_pool.isEmpty()) {
if(null == _evictionCursor) {
- _evictionCursor =
(CursorableLinkedList.Cursor)(_pool.cursor(_pool.size()));
+ _evictionCursor = (_pool.cursor(_pool.size()));
} else if(!_evictionCursor.hasPrevious()) {
_evictionCursor.close();
- _evictionCursor =
(CursorableLinkedList.Cursor)(_pool.cursor(_pool.size()));
+ _evictionCursor = (_pool.cursor(_pool.size()));
}
for(int i=0,m=getNumTests();i<m;i++) {
if(!_evictionCursor.hasPrevious()) {
_evictionCursor.close();
- _evictionCursor =
(CursorableLinkedList.Cursor)(_pool.cursor(_pool.size()));
+ _evictionCursor = (_pool.cursor(_pool.size()));
} else {
+ boolean removeObject = false;
ObjectTimestampPair pair =
(ObjectTimestampPair)(_evictionCursor.previous());
if(_minEvictableIdleTimeMillis > 0 &&
System.currentTimeMillis() - pair.tstamp >
_minEvictableIdleTimeMillis) {
- try {
- _evictionCursor.remove();
- _factory.destroyObject(pair.value);
- } catch(Exception e) {
- ; // ignored
- }
+ removeObject = true;
} else if(_testWhileIdle) {
boolean active = false;
try {
_factory.activateObject(pair.value);
active = true;
} catch(Exception e) {
- _evictionCursor.remove();
- try {
- _factory.passivateObject(pair.value);
- } catch(Exception ex) {
- ; // ignored
- }
- _factory.destroyObject(pair.value);
+ removeObject=true;
}
if(active) {
if(!_factory.validateObject(pair.value)) {
- _evictionCursor.remove();
- try {
- _factory.passivateObject(pair.value);
- } catch(Exception ex) {
- ; // ignored
- }
- _factory.destroyObject(pair.value);
+ removeObject=true;
} else {
try {
_factory.passivateObject(pair.value);
} catch(Exception e) {
- _evictionCursor.remove();
- _factory.destroyObject(pair.value);
+ removeObject=true;
}
}
}
}
+ if(removeObject) {
+ try {
+ _evictionCursor.remove();
+ _factory.destroyObject(pair.value);
+ } catch(Exception e) {
+ ; // ignored
+ }
+ }
}
}
}
}
-
+
//--- non-public methods ----------------------------------------
/**
- * Start the eviction thread or service, or when
+ * Start the eviction thread or service, or when
* <i>delay</i> is non-positive, stop it
* if it is already running.
*/
@@ -934,7 +920,7 @@
t.start();
}
}
-
+
synchronized String debugInfo() {
StringBuffer buf = new StringBuffer();
buf.append("Active: ").append(getNumActive()).append("\n");
@@ -983,11 +969,11 @@
class Evictor implements Runnable {
private boolean _cancelled = false;
private long _delay = 0L;
-
+
public Evictor(long delay) {
_delay = delay;
}
-
+
void cancel() {
_cancelled = true;
}
@@ -1134,7 +1120,7 @@
* The number of objects to examine during each run of the
* idle object evictor thread (if any).
* <p>
- * When a negative value is supplied, <tt>ceil([EMAIL PROTECTED]
#numIdle})/abs([EMAIL PROTECTED] #getNumTestsPerEvictionRun})</tt>
+ * When a negative value is supplied, <tt>ceil([EMAIL PROTECTED]
#getNumIdle})/abs([EMAIL PROTECTED] #getNumTestsPerEvictionRun})</tt>
* tests will be run. I.e., when the value is <i>-n</i>, roughly one
<i>n</i>th of the
* idle objects will be tested per run.
*
@@ -1175,6 +1161,6 @@
* My idle object eviction thread, if any.
*/
private Evictor _evictor = null;
-
+
private CursorableLinkedList.Cursor _evictionCursor = null;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]