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