[jboss-cvs] JBossAS SVN: r93143 - projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 2 17:12:39 EDT 2009
Author: gurkanerdogdu
Date: 2009-09-02 17:12:39 -0400 (Wed, 02 Sep 2009)
New Revision: 93143
Modified:
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/InternalManagedConnectionPool.java
Log:
JBJCA-164 Eliminate synchronization issues found in AbstractPool
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java 2009-09-02 20:22:22 UTC (rev 93142)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java 2009-09-02 21:12:39 UTC (rev 93143)
@@ -198,42 +198,35 @@
{
if (pool != null)
{
- synchronized (this.subPools)
+ Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
+ SubPoolContext other = null;
+ while (itSubPoolContexts.hasNext())
{
- Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
- SubPoolContext other = null;
- while (itSubPoolContexts.hasNext())
+ other = itSubPoolContexts.next();
+ if (other.getSubPool() == pool && pool.isEmpty())
{
- other = itSubPoolContexts.next();
- if (other.getSubPool() == pool && pool.isEmpty())
- {
- pool.shutdown();
- itSubPoolContexts.remove();
- break;
- }
- }
- }
+ pool.shutdown();
+ itSubPoolContexts.remove();
+ break;
+ }
+ }
}
-
}
/**
* {@inheritDoc}
- */
+ */
public void flush()
{
- synchronized (this.subPools)
+ Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
+ SubPoolContext subPoolContext = null;
+ while (itSubPoolContexts.hasNext())
{
- Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
- SubPoolContext subPoolContext = null;
- while (itSubPoolContexts.hasNext())
- {
- subPoolContext = itSubPoolContexts.next();
- subPoolContext.getSubPool().flush();
- }
-
- this.subPools.clear();
- }
+ subPoolContext = itSubPoolContexts.next();
+ subPoolContext.getSubPool().flush();
+ }
+
+ this.subPools.clear();
}
/**
@@ -565,22 +558,18 @@
/**
* {@inheritDoc}
- */
+ */
public void shutdown()
{
- synchronized (this.subPools)
+ Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
+ SubPoolContext subPoolContext = null;
+ while (itSubPoolContexts.hasNext())
{
- Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
- SubPoolContext subPoolContext = null;
- while (itSubPoolContexts.hasNext())
- {
- subPoolContext = itSubPoolContexts.next();
- subPoolContext.getSubPool().shutdown();
- }
-
- this.subPools.clear();
+ subPoolContext = itSubPoolContexts.next();
+ subPoolContext.getSubPool().shutdown();
}
-
+
+ this.subPools.clear();
}
/**
@@ -683,45 +672,42 @@
private long getCounts(PoolCounts countType)
{
long count = 0L;
-
- synchronized (this.subPools)
+
+ Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
+ SubPoolContext subPoolContext = null;
+ while (itSubPoolContexts.hasNext())
{
- Iterator<SubPoolContext> itSubPoolContexts = this.subPools.values().iterator();
- SubPoolContext subPoolContext = null;
- while (itSubPoolContexts.hasNext())
+ subPoolContext = itSubPoolContexts.next();
+ if (countType.equals(PoolCounts.CONNECTION_COUNT))
{
- subPoolContext = itSubPoolContexts.next();
- if (countType.equals(PoolCounts.CONNECTION_COUNT))
- {
- count += subPoolContext.getSubPool().getConnectionCount();
- }
- else if (countType.equals(PoolCounts.CONNECTION_IN_USE_COUNT))
- {
- count += subPoolContext.getSubPool().getConnectionInUseCount();
- }
- else if (countType.equals(PoolCounts.CONNECTION_CREATED_COUNT))
- {
- count += subPoolContext.getSubPool().getConnectionCreatedCount();
- }
- else if (countType.equals(PoolCounts.CONNECTION_DESTROYED_COUNT))
- {
- count += subPoolContext.getSubPool().getConnectionDestroyedCount();
- }
- else if (countType.equals(PoolCounts.CONNECTION_GET_AVAILABLE_COUNT))
- {
- count += subPoolContext.getSubPool().getAvailableConnections();
- }
- else if (countType.equals(PoolCounts.CONNECTION_GET_MAX_CONNECTIONS_IN_USE_COUNT))
- {
- count += subPoolContext.getSubPool().getMaxConnectionsInUseCount();
- }
- else
- {
- log.warn("Unknown count type : " + countType.toString());
- }
+ count += subPoolContext.getSubPool().getConnectionCount();
}
+ else if (countType.equals(PoolCounts.CONNECTION_IN_USE_COUNT))
+ {
+ count += subPoolContext.getSubPool().getConnectionInUseCount();
+ }
+ else if (countType.equals(PoolCounts.CONNECTION_CREATED_COUNT))
+ {
+ count += subPoolContext.getSubPool().getConnectionCreatedCount();
+ }
+ else if (countType.equals(PoolCounts.CONNECTION_DESTROYED_COUNT))
+ {
+ count += subPoolContext.getSubPool().getConnectionDestroyedCount();
+ }
+ else if (countType.equals(PoolCounts.CONNECTION_GET_AVAILABLE_COUNT))
+ {
+ count += subPoolContext.getSubPool().getAvailableConnections();
+ }
+ else if (countType.equals(PoolCounts.CONNECTION_GET_MAX_CONNECTIONS_IN_USE_COUNT))
+ {
+ count += subPoolContext.getSubPool().getMaxConnectionsInUseCount();
+ }
+ else
+ {
+ log.warn("Unknown count type : " + countType.toString());
+ }
}
-
+
return count;
- }
+ }
}
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/InternalManagedConnectionPool.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/InternalManagedConnectionPool.java 2009-09-02 20:22:22 UTC (rev 93142)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/InternalManagedConnectionPool.java 2009-09-02 21:12:39 UTC (rev 93143)
@@ -978,10 +978,7 @@
{
if (!destroyed)
{
- //synchronized (cls)
- //{
returnForFrequencyCheck(cl);
- //}
}
}
}
More information about the jboss-cvs-commits
mailing list