summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-03-04 21:46:36 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-03-04 21:46:36 +0000
commita39c87bc513736af8a9c14cb0059cc9d66c7efd6 (patch)
treee285d96761615b1febd748eef0b6c21fa24e8729
parente2e5605ff0f0597bbb2a596ae2c9e0dc54aef7f0 (diff)
downloadqpid-python-a39c87bc513736af8a9c14cb0059cc9d66c7efd6.tar.gz
QPID-6433 : notify link listeners of flow state change outside of the connection endpoint lock
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1664160 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
index 5a28ddcb60..e16a469ba4 100644
--- a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
+++ b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/SessionEndpoint.java
@@ -456,7 +456,7 @@ public class SessionEndpoint
public void receiveFlow(final Flow flow)
{
-
+ Collection<LinkEndpoint> endpoints = new ArrayList<>();
synchronized(getLock())
{
UnsignedInteger handle = flow.getHandle();
@@ -472,15 +472,17 @@ public class SessionEndpoint
}
else
{
- for(LinkEndpoint le : _remoteLinkEndpoints.values())
- {
- le.flowStateChanged();
- }
+ endpoints.addAll(_remoteLinkEndpoints.values());
}
getLock().notifyAll();
}
+ for(LinkEndpoint le : endpoints)
+ {
+ le.flowStateChanged();
+ }
+
}