diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2012-01-10 16:03:04 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2012-01-10 16:03:04 +0000 |
| commit | 44e5b08cd17d40c20c11297caf4812acb58a1a93 (patch) | |
| tree | 1f437e7baa380f819f9cb5bb8739d1ad59e76806 /qpid/java/jca | |
| parent | 2420f530fc106caf96f9f9622d82fe117b83a219 (diff) | |
| download | qpid-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/jca')
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 { |
