summaryrefslogtreecommitdiff
path: root/qpid/java
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
commit44e5b08cd17d40c20c11297caf4812acb58a1a93 (patch)
tree1f437e7baa380f819f9cb5bb8739d1ad59e76806 /qpid/java
parent2420f530fc106caf96f9f9622d82fe117b83a219 (diff)
downloadqpid-python-44e5b08cd17d40c20c11297caf4812acb58a1a93.tar.gz
QPID-3700, Committing patch from Weston Price.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1229617 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/jca/.gitignore1
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java7
-rw-r--r--qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java9
3 files changed, 15 insertions, 2 deletions
diff --git a/qpid/java/jca/.gitignore b/qpid/java/jca/.gitignore
new file mode 100644
index 0000000000..1377554ebe
--- /dev/null
+++ b/qpid/java/jca/.gitignore
@@ -0,0 +1 @@
+*.swp
diff --git a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
index 16891290ae..53896d8872 100644
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java
+++ b/qpid/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/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java b/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
index a270253c13..fdd4888a3d 100644
--- a/qpid/java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java
+++ b/qpid/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
{