[jboss-cvs] JBossAS SVN: r112568 - in projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager: pool and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 9 12:40:19 EST 2012
Author: jesper.pedersen
Date: 2012-01-09 12:40:18 -0500 (Mon, 09 Jan 2012)
New Revision: 112568
Modified:
projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java
projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java
projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ArrayBlockingQueueManagedConnectionPool.java
projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java
Log:
[JBJCA-721] New interrupt policy
Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java 2012-01-09 17:35:20 UTC (rev 112567)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java 2012-01-09 17:40:18 UTC (rev 112568)
@@ -314,7 +314,7 @@
protected ConnectionListener getManagedConnection(Transaction transaction, Subject subject,
ConnectionRequestInfo cri) throws ResourceException
{
- ResourceException failure = null;
+ Exception failure = null;
if (shutdown.get())
{
@@ -322,6 +322,8 @@
}
// First attempt
+ boolean isInterrupted = Thread.interrupted();
+ boolean innerIsInterrupted = false;
try
{
return pool.getConnection(transaction, subject, cri);
@@ -345,6 +347,13 @@
log.trace("Attempting allocation retry for cri=" + cri);
}
+
+ if (Thread.currentThread().isInterrupted())
+ {
+ Thread.interrupted();
+ innerIsInterrupted = true;
+ }
+
try
{
if (allocationRetryWaitMillis != 0)
@@ -360,11 +369,22 @@
}
catch (InterruptedException ie)
{
- throw new ResourceException(bundle.getManagedConnectionRetryWaitInterrupted(jndiName), ie);
+ failure = ie;
+ innerIsInterrupted = true;
}
}
}
}
+ finally
+ {
+ if (isInterrupted || innerIsInterrupted)
+ {
+ Thread.currentThread().interrupt();
+
+ if (innerIsInterrupted)
+ throw new ResourceException(bundle.getManagedConnectionRetryWaitInterrupted(jndiName), failure);
+ }
+ }
// If we get here all retries failed, throw the lastest failure
throw new ResourceException(bundle.unableGetManagedConnection(jndiName), failure);
Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java 2012-01-09 17:35:20 UTC (rev 112567)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/AbstractPool.java 2012-01-09 17:40:18 UTC (rev 112568)
@@ -451,6 +451,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
throw new ResourceException(bundle.unableObtainLock(), ie);
}
try
@@ -505,6 +507,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
throw new ResourceException(bundle.unableObtainLock(), ie);
}
try
Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ArrayBlockingQueueManagedConnectionPool.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ArrayBlockingQueueManagedConnectionPool.java 2012-01-09 17:35:20 UTC (rev 112567)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/ArrayBlockingQueueManagedConnectionPool.java 2012-01-09 17:40:18 UTC (rev 112568)
@@ -234,6 +234,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
long end = System.currentTimeMillis() - startWait;
throw new ResourceException(bundle.interruptedWhileRequestingConnection(end));
}
@@ -272,6 +274,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
if (!poolConfiguration.isUseFastFail())
{
throw new ResourceException(bundle.noMManagedConnectionsAvailableWithinConfiguredBlockingTimeout(
@@ -439,6 +443,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
cl.setState(ConnectionState.DESTROY);
kill = true;
}
Modified: projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java
===================================================================
--- projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java 2012-01-09 17:35:20 UTC (rev 112567)
+++ projects/jboss-jca/branches/Branch_1_0/core/src/main/java/org/jboss/jca/core/connectionmanager/pool/mcp/SemaphoreArrayListManagedConnectionPool.java 2012-01-09 17:40:18 UTC (rev 112568)
@@ -381,6 +381,8 @@
}
catch (InterruptedException ie)
{
+ Thread.interrupted();
+
long end = System.currentTimeMillis() - startWait;
statistics.deltaTotalBlockingTime(end);
throw new ResourceException(bundle.interruptedWhileRequestingPermit(end));
@@ -723,6 +725,8 @@
}
catch (InterruptedException ignored)
{
+ Thread.interrupted();
+
if (trace)
log.trace("Interrupted while requesting permit in fillToMin");
}
More information about the jboss-cvs-commits
mailing list