Author: bdelacretaz
Date: Fri Nov  1 13:45:20 2013
New Revision: 1537937

URL: http://svn.apache.org/r1537937
Log:
SLING-3220 - avoid infinite loop in TimedEventSender, patch contributed by Marc 
Pfaff, thanks!

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

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/timed/TimedEventSender.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/timed/TimedEventSender.java?rev=1537937&r1=1537936&r2=1537937&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/timed/TimedEventSender.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/timed/TimedEventSender.java
 Fri Nov  1 13:45:20 2013
@@ -252,6 +252,15 @@ public class TimedEventSender
                     }
 
                     event = null;
+                } else if (Utility.TOPIC_STOPPED.equals(event.getTopic())){
+                    // stopScheduling() puts this event on the queue, but the 
intention is unclear to me.
+                    // as the threadStarted flag ensures the background thread 
is only started once, we must not stop
+                    // the thread, otherwise its never started again upon 
topology changes.
+                    event = null;
+                } else {
+                    // to ensure the event is reset to null in any case, in 
order to take from the queue again
+                    // and to not fall into an endless busy loop
+                    event = null;
                 }
             }
         }


Reply via email to