summaryrefslogtreecommitdiff
path: root/java/jca
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2012-01-10 16:03:04 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2012-01-10 16:03:04 +0000
commitf1d2096e1f100c107aec27a90047c2e4d67d72f3 (patch)
tree71b59c208704ff933bdcb158fcd885ad3e48059d /java/jca
parente4303e74b13bc9f637127505cd791b26b4cd5b43 (diff)
downloadqpid-python-f1d2096e1f100c107aec27a90047c2e4d67d72f3.tar.gz
QPID-3700, Committing patch from Weston Price.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1229617 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/jca')
-rw-r--r--java/jca/.gitignore1
-rw-r--r--java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java7
-rw-r--r--java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java9
3 files changed, 15 insertions, 2 deletions
diff --git a/java/jca/.gitignore b/java/jca/.gitignore
new file mode 100644
index 0000000000..1377554ebe
--- /dev/null
+++ b/java/jca/.gitignore
@@ -0,0 +1 @@
+*.swp
diff --git a/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java b/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
index 16891290ae..53896d8872 100644
--- a/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
+++ b/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
@@ -57,6 +57,8 @@ import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
+import org.apache.qpid.client.Closeable;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -877,4 +879,9 @@ public class QpidRAManagedConnection implements ManagedConnection, ExceptionList
this._inManagedTx = inManagedTx;
}
+ public boolean isConnectionClosed()
+ {
+ Closeable c = (Closeable)_connection;
+ return (c == null || c.isClosed() || c.isClosing());
+ }
}
diff --git a/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java b/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
index a270253c13..fdd4888a3d 100644
--- a/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
+++ b/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
@@ -410,19 +410,24 @@ public class QpidRASessionImpl implements Session, QueueSession, TopicSession, X
lock();
try
{
- Session session = getSessionInternal();
if (_cri.isTransacted() == false)
{
throw new IllegalStateException("Session is not transacted");
}
+ if(_lockedMC.isConnectionClosed())
+ {
+ throw new IllegalStateException("Attempting to call commit when the underlying connection has been closed.");
+ }
+
if (_log.isTraceEnabled())
{
_log.trace("Commit session " + this);
}
- session.commit();
+ getSessionInternal().commit();
+
}
finally
{