Author: rgodfrey
Date: Wed Jun 27 21:29:29 2012
New Revision: 1354738
URL: http://svn.apache.org/viewvc?rev=1354738&view=rev
Log:
QPID-4091 : [Java Broker] correct handling of dtx set timeout
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java?rev=1354738&r1=1354737&r2=1354738&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java
Wed Jun 27 21:29:29 2012
@@ -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.CopyOnWriteA
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.ac
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.Incorr
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
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java?rev=1354738&r1=1354737&r2=1354738&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
Wed Jun 27 21:29:29 2012
@@ -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);
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]