diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2012-06-27 21:29:29 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2012-06-27 21:29:29 +0000 |
commit | 94acbd4186201188e13a358cfac04f64bfe53f4e (patch) | |
tree | 13b8f35b4afa24804589221f834b91248650081e | |
parent | 239988bd3524f18cecfa3b57361e19002022e3e8 (diff) | |
download | qpid-python-94acbd4186201188e13a358cfac04f64bfe53f4e.tar.gz |
QPID-4091 : [Java Broker] correct handling of dtx set timeout
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1354738 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java | 22 | ||||
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java | 13 |
2 files changed, 11 insertions, 24 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java index d4631ae675..0cb60fafd3 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java @@ -20,19 +20,11 @@ */ package org.apache.qpid.server.transport; -import java.util.Collections; -import java.util.HashSet; -import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT; -import org.apache.qpid.server.message.InboundMessage; -import org.apache.qpid.server.message.MessageMetaData_0_10; -import org.apache.qpid.server.message.MessageTransferMessage; -import org.apache.qpid.server.txn.RollbackOnlyDtxException; -import org.apache.qpid.server.txn.TimeoutDtxException; -import static org.apache.qpid.util.Serial.gt; - import java.security.Principal; import java.text.MessageFormat; import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -46,9 +38,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; - import javax.security.auth.Subject; - import org.apache.qpid.AMQException; import org.apache.qpid.AMQStoreException; import org.apache.qpid.protocol.AMQConstant; @@ -64,7 +54,10 @@ import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.logging.actors.GenericActor; import org.apache.qpid.server.logging.messages.ChannelMessages; import org.apache.qpid.server.logging.subjects.ChannelLogSubject; +import org.apache.qpid.server.message.InboundMessage; +import org.apache.qpid.server.message.MessageMetaData_0_10; import org.apache.qpid.server.message.MessageReference; +import org.apache.qpid.server.message.MessageTransferMessage; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.protocol.AMQConnectionModel; import org.apache.qpid.server.protocol.AMQSessionModel; @@ -83,14 +76,19 @@ import org.apache.qpid.server.txn.IncorrectDtxStateException; import org.apache.qpid.server.txn.JoinAndResumeDtxException; import org.apache.qpid.server.txn.LocalTransaction; import org.apache.qpid.server.txn.NotAssociatedDtxException; +import org.apache.qpid.server.txn.RollbackOnlyDtxException; import org.apache.qpid.server.txn.ServerTransaction; import org.apache.qpid.server.txn.SuspendAndFailDtxException; +import org.apache.qpid.server.txn.TimeoutDtxException; import org.apache.qpid.server.txn.UnknownDtxBranchException; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.transport.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT; +import static org.apache.qpid.util.Serial.gt; + public class ServerSession extends Session implements AuthorizationHolder, SessionConfig, AMQSessionModel, LogSubject, AsyncAutoCommitTransaction.FutureRecorder diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java index 6a91cc39c5..117beb82ef 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java @@ -308,28 +308,17 @@ public class DtxRegistry return inDoubt; } - public synchronized void endAssociations(AMQSessionModel session) throws TimeoutDtxException + public synchronized void endAssociations(AMQSessionModel session) { - boolean timeout = false; - Xid id = null; for(DtxBranch branch : _branches.values()) { if(branch.isAssociated(session)) { - if(branch.expired() || branch.getState() == DtxBranch.State.TIMEDOUT) - { - timeout = true; - id = branch.getXid(); - } branch.setState(DtxBranch.State.ROLLBACK_ONLY); branch.disassociateSession(session); } } - if(timeout) - { - throw new TimeoutDtxException(id); - } } |