From 3d38c76035469160b929e5bf84f217577642d5d2 Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Thu, 20 Dec 2012 12:11:16 +0000 Subject: QPID-4503: Producer transaction timeout detection feature may produce spurious open/idle alerts and close client connections/sessions without good cause Address second race condition: Transaction update time should be reset on session commit or session rollback git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1424427 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java | 3 +++ .../src/main/java/org/apache/qpid/server/transport/ServerSession.java | 2 ++ 2 files changed, 5 insertions(+) (limited to 'qpid/java') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java index 0826f182fd..3deff080d6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java @@ -959,6 +959,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F _txnCommits.incrementAndGet(); _txnStarts.incrementAndGet(); decrementOutstandingTxnsIfNecessary(); + _txnUpdateTime.set(0); } }); } @@ -968,6 +969,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F _txnCommits.incrementAndGet(); _txnStarts.incrementAndGet(); + _txnUpdateTime.set(0); decrementOutstandingTxnsIfNecessary(); } } @@ -1005,6 +1007,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F _txnRejects.incrementAndGet(); _txnStarts.incrementAndGet(); + _txnUpdateTime.set(0); decrementOutstandingTxnsIfNecessary(); } 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 075ed2a87c..85a9433e91 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 @@ -549,6 +549,7 @@ public class ServerSession extends Session _txnCommits.incrementAndGet(); _txnStarts.incrementAndGet(); + _txnUpdateTime.set(0); decrementOutstandingTxnsIfNecessary(); } @@ -558,6 +559,7 @@ public class ServerSession extends Session _txnRejects.incrementAndGet(); _txnStarts.incrementAndGet(); + _txnUpdateTime.set(0); decrementOutstandingTxnsIfNecessary(); } -- cgit v1.2.1