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 | f1d2096e1f100c107aec27a90047c2e4d67d72f3 (patch) | |
| tree | 71b59c208704ff933bdcb158fcd885ad3e48059d /java/jca | |
| parent | e4303e74b13bc9f637127505cd791b26b4cd5b43 (diff) | |
| download | qpid-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/.gitignore | 1 | ||||
| -rw-r--r-- | java/jca/src/main/java/org/apache/qpid/ra/QpidRAManagedConnection.java | 7 | ||||
| -rw-r--r-- | java/jca/src/main/java/org/apache/qpid/ra/QpidRASessionImpl.java | 9 |
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 { |
