[jboss-cvs] JBossAS SVN: r107038 - branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 22 17:02:04 EDT 2010
Author: jesper.pedersen
Date: 2010-07-22 17:02:04 -0400 (Thu, 22 Jul 2010)
New Revision: 107038
Modified:
branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java
branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
Log:
Minor performance optimization
Modified: branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java
===================================================================
--- branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java 2010-07-22 20:31:21 UTC (rev 107037)
+++ branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/InternalManagedConnectionPool.java 2010-07-22 21:02:04 UTC (rev 107038)
@@ -202,9 +202,10 @@
throw new RetryableResourceException("The pool has been shutdown");
}
- if (cls.size() > 0)
+ int clsSize = cls.size();
+ if (clsSize > 0)
{
- cl = (ConnectionListener) cls.remove(cls.size() - 1);
+ cl = (ConnectionListener) cls.remove(clsSize - 1);
checkedOut.add(cl);
int size = (int) (maxSize - permits.availablePermits());
if (size > maxUsedConnections)
Modified: branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
===================================================================
--- branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java 2010-07-22 20:31:21 UTC (rev 107037)
+++ branches/JBPAPP_5_1/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java 2010-07-22 21:02:04 UTC (rev 107038)
@@ -26,6 +26,8 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.management.ObjectName;
@@ -131,6 +133,8 @@
{
private static final Throwable FAILED_TO_ENLIST = new Throwable("Unabled to enlist resource, see the previous warnings.");
+ private static final ConcurrentMap<Integer, Integer> SUCCEED_STATUS;
+
private ObjectName transactionManagerService;
//use the object name, please
@@ -174,6 +178,12 @@
}
IGNORE_STATUS_MARKED_FOR_ROLLBACK = value;
+
+ SUCCEED_STATUS = new ConcurrentHashMap<Integer, Integer>(4);
+ SUCCEED_STATUS.put(Integer.valueOf(Status.STATUS_ACTIVE), Integer.valueOf(Status.STATUS_ACTIVE));
+ SUCCEED_STATUS.put(Integer.valueOf(Status.STATUS_PREPARING), Integer.valueOf(Status.STATUS_PREPARING));
+ SUCCEED_STATUS.put(Integer.valueOf(Status.STATUS_PREPARED), Integer.valueOf(Status.STATUS_PREPARED));
+ SUCCEED_STATUS.put(Integer.valueOf(Status.STATUS_COMMITTING), Integer.valueOf(Status.STATUS_COMMITTING));
}
protected static void rethrowAsSystemException(String context, Transaction tx, Throwable t)
@@ -353,9 +363,9 @@
Transaction tx = tm.getTransaction();
if (tx != null)
{
- int status = tx.getStatus();
+ Integer status = Integer.valueOf(tx.getStatus());
// Only allow states that will actually succeed
- if (status != Status.STATUS_ACTIVE && status != Status.STATUS_PREPARING && status != Status.STATUS_PREPARED && status != Status.STATUS_COMMITTING)
+ if (!SUCCEED_STATUS.containsKey(status))
{
if (status == Status.STATUS_MARKED_ROLLBACK && IGNORE_STATUS_MARKED_FOR_ROLLBACK)
; // allow database access even though transaction is marked to fail
More information about the jboss-cvs-commits
mailing list