[jboss-cvs] JBossAS SVN: r74335 - trunk/connector/src/main/org/jboss/resource/adapter/jdbc.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 10 04:15:46 EDT 2008
Author: jesper.pedersen
Date: 2008-06-10 04:15:45 -0400 (Tue, 10 Jun 2008)
New Revision: 74335
Modified:
trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedResultSet.java
trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedStatement.java
Log:
[JBAS-1082] Opimize checkState()
Modified: trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedResultSet.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedResultSet.java 2008-06-10 06:33:26 UTC (rev 74334)
+++ trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedResultSet.java 2008-06-10 08:15:45 UTC (rev 74335)
@@ -39,6 +39,7 @@
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* A wrapper for a result set
@@ -55,10 +56,7 @@
private ResultSet resultSet;
/** Whether we are closed */
- private boolean closed = false;
-
- /** The state lock */
- private Object lock = new Object();
+ private AtomicBoolean closed = new AtomicBoolean(false);
/**
* Create a new wrapped result set
@@ -180,12 +178,10 @@
public void close() throws SQLException
{
- synchronized (lock)
- {
- if (closed)
- return;
- closed = true;
- }
+ if (closed.get())
+ return;
+
+ closed.set(true);
statement.unregisterResultSet(this);
internalClose();
}
@@ -1953,20 +1949,14 @@
void internalClose() throws SQLException
{
- synchronized (lock)
- {
- closed = true;
- }
+ closed.set(true);
resultSet.close();
}
void checkState() throws SQLException
{
- synchronized (lock)
- {
- if (closed)
- throw new SQLException("The result set is closed.");
- }
+ if (closed.get())
+ throw new SQLException("The result set is closed.");
}
protected void checkTransaction() throws SQLException
Modified: trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedStatement.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedStatement.java 2008-06-10 06:33:26 UTC (rev 74334)
+++ trunk/connector/src/main/org/jboss/resource/adapter/jdbc/WrappedStatement.java 2008-06-10 08:15:45 UTC (rev 74335)
@@ -29,6 +29,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* A wrapper for a statement.
@@ -49,11 +50,8 @@
private HashMap<WrappedResultSet, Throwable> resultSets;
/** Whether we are closed */
- private boolean closed = false;
+ private AtomicBoolean closed = new AtomicBoolean(false);
- /** The state lock */
- private Object lock = new Object();
-
public WrappedStatement(final WrappedConnection lc, Statement s)
{
this.lc = lc;
@@ -73,13 +71,10 @@
public void close() throws SQLException
{
- synchronized (lock)
- {
- if (closed)
- return;
+ if (closed.get())
+ return;
- closed = true;
- }
+ closed.set(true);
lc.unregisterStatement(this);
internalClose();
}
@@ -876,10 +871,7 @@
protected void internalClose() throws SQLException
{
- synchronized (lock)
- {
- closed = true;
- }
+ closed.set(true);
try
{
closeResultSets();
@@ -892,11 +884,8 @@
void checkState() throws SQLException
{
- synchronized (lock)
- {
- if (closed)
- throw new SQLException("The statement is closed.");
- }
+ if (closed.get())
+ throw new SQLException("The statement is closed.");
}
protected abstract WrappedResultSet wrapResultSet(ResultSet resultSet);
More information about the jboss-cvs-commits
mailing list