summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-12-20 12:11:16 +0000
committerKeith Wall <kwall@apache.org>2012-12-20 12:11:16 +0000
commit8b3e2ff50a93805881659f62d259a1b7cf02e457 (patch)
treee319e8092fd4af9bd807012f2fe418ef8caf9091 /java
parent7e577de7a0bd77c87f7b2c1961ec11b0f3b35502 (diff)
downloadqpid-python-8b3e2ff50a93805881659f62d259a1b7cf02e457.tar.gz
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
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java3
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/transport/ServerSession.java2
2 files changed, 5 insertions, 0 deletions
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();
}