Author: cziegeler
Date: Mon Dec  9 02:52:13 2013
New Revision: 1549371

URL: http://svn.apache.org/r1549371
Log:
SLING-3268 : TopicRoundRobin queue thread is not stopped when queue is closed

Modified:
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java?rev=1549371&r1=1549370&r2=1549371&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/TopicRoundRobinJobQueue.java
 Mon Dec  9 02:52:13 2013
@@ -67,20 +67,19 @@ public final class TopicRoundRobinJobQue
 
     @Override
     protected void put(final JobHandler event) {
-        // is this a close?
-        if ( event.getJob() == null ) {
-            return;
-        }
-        final String topic = event.getJob().getTopic();
         synchronized ( this.topicMap ) {
-            List<JobHandler> events = this.topicMap.get(topic);
-            if ( events == null ) {
-                events = new LinkedList<JobHandler>();
-                this.topicMap.put(topic, events);
-                this.topics.add(topic);
+            // is this a real event (not close)?
+            if ( event.getJob() != null ) {
+                final String topic = event.getJob().getTopic();
+                List<JobHandler> events = this.topicMap.get(topic);
+                if ( events == null ) {
+                    events = new LinkedList<JobHandler>();
+                    this.topicMap.put(topic, events);
+                    this.topics.add(topic);
+                }
+                events.add(event);
+                this.eventCount++;
             }
-            events.add(event);
-            this.eventCount++;
             if ( this.isWaitingForNext ) {
                 this.isWaitingForNext = false;
                 // wake up take()


Reply via email to