You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2010/12/21 07:48:43 UTC

svn commit: r1051387 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues: OrderedJobQueue.java ParallelJobQueue.java

Author: cziegeler
Date: Tue Dec 21 06:48:42 2010
New Revision: 1051387

URL: http://svn.apache.org/viewvc?rev=1051387&view=rev
Log:
Fix remove all jobs from queue and wake up queue if clearing

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

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java?rev=1051387&r1=1051386&r2=1051387&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java Tue Dec 21 06:48:42 2010
@@ -96,14 +96,18 @@ public final class OrderedJobQueue exten
         this.isSleepingUntil = System.currentTimeMillis() + delay;
     }
 
-    @Override
-    public void resume() {
+    private void wakeUp() {
         if ( this.isSleepingUntil != -1 ) {
             final Thread thread = this.sleepingThread;
             if ( thread != null ) {
                 thread.interrupt();
             }
         }
+    }
+
+    @Override
+    public void resume() {
+        this.wakeUp();
         super.resume();
     }
 
@@ -176,13 +180,14 @@ public final class OrderedJobQueue exten
     @Override
     public synchronized void removeAll() {
         this.jobEvent = null;
+        this.wakeUp();
         super.removeAll();
     }
 
     @Override
     protected Collection<JobEvent> removeAllJobs() {
-        final List<JobEvent> events = new ArrayList<JobEvent>(this.queue);
-        this.queue.clear();
+        final List<JobEvent> events = new ArrayList<JobEvent>();
+        this.queue.drainTo(events);
         return events;
     }
 

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/ParallelJobQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/ParallelJobQueue.java?rev=1051387&r1=1051386&r2=1051387&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/ParallelJobQueue.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/ParallelJobQueue.java Tue Dec 21 06:48:42 2010
@@ -81,8 +81,8 @@ public final class ParallelJobQueue exte
 
     @Override
     protected Collection<JobEvent> removeAllJobs() {
-        final List<JobEvent> events = new ArrayList<JobEvent>(this.queue);
-        this.queue.clear();
+        final List<JobEvent> events = new ArrayList<JobEvent>();
+        this.queue.drainTo(events);
         return events;
     }
 }