summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2008-08-20 16:26:16 +0000
committerAidan Skinner <aidan@apache.org>2008-08-20 16:26:16 +0000
commita8aec3509373a0f393923a1e78b8c907a2c3df37 (patch)
tree13e24ceead00d37103d465ed64d9627527aff007 /java
parent9a88d24b1a1e9391a224544aa406461071f6dcb3 (diff)
downloadqpid-python-a8aec3509373a0f393923a1e78b8c907a2c3df37.tar.gz
QPID-1202: TopicExchance.removeFilteredQueue: if there are no instances of the filter, it's ok to remove it.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@687382 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
index 59a8339346..bc303a219d 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
@@ -216,17 +216,20 @@ public class TopicExchange extends AbstractExchange
if(filters != null)
{
Integer instances = filters.get(filter);
- if(instances == 1)
+ if(instances != null)
{
- filters.remove(filter);
- if(filters.isEmpty())
+ if(instances == 1)
{
- _filteredQueues.remove(queue);
+ filters.remove(filter);
+ if(filters.isEmpty())
+ {
+ _filteredQueues.remove(queue);
+ }
+ }
+ else
+ {
+ filters.put(filter, instances - 1);
}
- }
- else if(instances != null)
- {
- filters.put(filter, instances - 1);
}
}