You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/11/01 14:45:20 UTC

svn commit: r1537937 - /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/timed/TimedEventSender.java

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;
                 }
             }
         }