From 8b3e2ff50a93805881659f62d259a1b7cf02e457 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/qpid@1424427 13f79535-47bb-0310-9956-ffa450edef68 --- 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 'java') diff --git a/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java b/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java index 0826f182fd..3deff080d6 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java +++ b/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/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java index 075ed2a87c..85a9433e91 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java +++ b/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