[jboss-cvs] JBossAS SVN: r108598 - projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Oct 15 10:35:42 EDT 2010
Author: jesper.pedersen
Date: 2010-10-15 10:35:42 -0400 (Fri, 15 Oct 2010)
New Revision: 108598
Modified:
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/PoolFiller.java
Log:
Use synchronized list for now
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/PoolFiller.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/PoolFiller.java 2010-10-15 13:12:19 UTC (rev 108597)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/PoolFiller.java 2010-10-15 14:35:42 UTC (rev 108598)
@@ -21,10 +21,8 @@
*/
package org.jboss.jca.core.connectionmanager.pool.mcp;
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.LinkedList;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.ReentrantLock;
import org.jboss.logging.Logger;
@@ -46,8 +44,7 @@
private static final PoolFiller FILLER = new PoolFiller();
/** Pools list */
- private final LinkedBlockingQueue<ManagedConnectionPool> pools =
- new LinkedBlockingQueue<ManagedConnectionPool>();
+ private final LinkedList<ManagedConnectionPool> pools = new LinkedList<ManagedConnectionPool>();
/** Filler thread */
private final Thread fillerThread;
@@ -55,12 +52,6 @@
/** Thread name */
private static final String THREAD_FILLER_NAME = "JCA PoolFiller";
- /** Lock instance */
- private ReentrantLock lock = new ReentrantLock();
-
- /** Lock condition */
- private Condition condition = this.lock.newCondition();
-
/**Thread is configured or not*/
private AtomicBoolean threadStarted = new AtomicBoolean(false);
@@ -91,48 +82,46 @@
final ClassLoader myClassLoader = getClass().getClassLoader();
SecurityActions.setThreadContextClassLoader(myClassLoader);
- // keep going unless interrupted
while (true)
{
- ManagedConnectionPool mcp = null;
- try
+ try
{
- // keep iterating through pools till empty, exception escapes.
+ ManagedConnectionPool mcp = null;
+
while (true)
{
- mcp = pools.remove();
-
- if (mcp == null)
+ synchronized (pools)
{
- break;
+ mcp = pools.removeFirst();
}
+ if (mcp == null)
+ break;
+
mcp.fillToMin();
}
}
catch (Exception e)
{
- log.warn("Exception is occured while filling pool : " + mcp);
+ // Ignore
}
-
- try
+
+ try
{
- this.lock.lock();
-
- while (pools.isEmpty())
+ synchronized (pools)
{
- condition.await();
+ while (pools.isEmpty())
+ {
+ pools.wait();
+
+ }
}
}
catch (InterruptedException ie)
{
+ Thread.currentThread().interrupt();
return;
-
}
- finally
- {
- this.lock.unlock();
- }
}
}
@@ -147,7 +136,10 @@
this.fillerThread.start();
}
- this.pools.add(mcp);
- this.condition.signal();
+ synchronized (pools)
+ {
+ pools.addLast(mcp);
+ pools.notify();
+ }
}
}
More information about the jboss-cvs-commits
mailing list