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 2011/02/28 16:02:59 UTC

svn commit: r1075362 - in /sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl: AbstractTest.java jobs/ExtendedJobManager.java jobs/IgnoreQueueTest.java

Author: cziegeler
Date: Mon Feb 28 15:02:58 2011
New Revision: 1075362

URL: http://svn.apache.org/viewvc?rev=1075362&view=rev
Log:
Fix for potential timing problem in IgnoreQueueTest

Modified:
    sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/AbstractTest.java
    sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java
    sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java

Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/AbstractTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/AbstractTest.java?rev=1075362&r1=1075361&r2=1075362&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/AbstractTest.java (original)
+++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/AbstractTest.java Mon Feb 28 15:02:58 2011
@@ -183,4 +183,12 @@ public abstract class AbstractTest {
         }
 
     }
+
+    public static void sleep(final long ms) {
+        try {
+            Thread.sleep(ms);
+        } catch (final InterruptedException ie) {
+            // ignore
+        }
+    }
 }

Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java?rev=1075362&r1=1075361&r2=1075362&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/ExtendedJobManager.java Mon Feb 28 15:02:58 2011
@@ -26,6 +26,8 @@ public class ExtendedJobManager extends 
 
     private final AtomicInteger added = new AtomicInteger();
 
+    private final AtomicInteger removed = new AtomicInteger();
+
     @Override
     public void process(JobEvent event) {
         super.process(event);
@@ -38,6 +40,12 @@ public class ExtendedJobManager extends 
         this.added.incrementAndGet();
     }
 
+    @Override
+    public void notifyRemoveJob(String key) {
+        super.notifyRemoveJob(key);
+        this.removed.incrementAndGet();
+    }
+
     public int getProcessed() {
         return processed.intValue();
     }
@@ -45,4 +53,8 @@ public class ExtendedJobManager extends 
     public int getAdded() {
         return added.intValue();
     }
+
+    public int getRemoved() {
+        return removed.intValue();
+    }
 }

Modified: sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java?rev=1075362&r1=1075361&r2=1075362&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java (original)
+++ sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/impl/jobs/IgnoreQueueTest.java Mon Feb 28 15:02:58 2011
@@ -26,6 +26,7 @@ import java.util.Hashtable;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.sling.event.impl.AbstractTest;
 import org.apache.sling.event.impl.SimpleEventAdmin;
 import org.apache.sling.event.impl.jobs.config.ConfigurationConstants;
 import org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration;
@@ -127,7 +128,7 @@ public class IgnoreQueueTest extends Abs
 
         // we wait until NUM_JOBS have been processed by the JobManager
         while ( ((ExtendedJobManager)this.jobManager).getAdded() < NUM_JOBS ) {
-            Thread.sleep(400);
+            AbstractTest.sleep(400);
         }
 
         // no jobs queued, none processed but available
@@ -139,13 +140,13 @@ public class IgnoreQueueTest extends Abs
         // let'see if restarting helps
         this.createConfiguration(QueueConfiguration.Type.UNORDERED);
         this.jobManager.restart();
-        // we wait
+        // we wait until all jobs are processed
         while ( count.get() < NUM_JOBS ) {
-            try {
-                Thread.sleep(500);
-            } catch (InterruptedException ie) {
-                // ignore
-            }
+            AbstractTest.sleep(500);
+        }
+        // we wait until all jobs are removed
+        while ( ((ExtendedJobManager)this.jobManager).getRemoved() < NUM_JOBS ) {
+            AbstractTest.sleep(500);
         }
         // no jobs queued, but processed and not available
         assertEquals(0, this.jobManager.getStatistics().getNumberOfQueuedJobs());