summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
index 59a8339346..bc303a219d 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
+++ b/qpid/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);
}
}