You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2016/12/22 12:42:16 UTC

svn commit: r1775638 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java

Author: mreutegg
Date: Thu Dec 22 12:42:16 2016
New Revision: 1775638

URL: http://svn.apache.org/viewvc?rev=1775638&view=rev
Log:
OAK-5339: Test failure: BackgroundObserverTest.testExcludeSomeCommits()

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java?rev=1775638&r1=1775637&r2=1775638&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserver.java Thu Dec 22 12:42:16 2016
@@ -324,17 +324,16 @@ public class BackgroundObserver implemen
      * @throws InterruptedException **/
     boolean waitUntilStopped(int timeout, TimeUnit unit) throws InterruptedException {
         long done = System.currentTimeMillis() + unit.toMillis(timeout);
-        boolean added;
-        synchronized(this) {
-            added = queue.offer(STOP);
-            currentTask.onComplete(completionHandler);
-        }
+        boolean added = false;
         while(done > System.currentTimeMillis()) {
             synchronized(this) {
                 if (!added) {
                     added = queue.offer(STOP);
+                    if (added) {
+                        currentTask.onComplete(completionHandler);
+                    }
                 }
-                if (queue.size() == 0 || (queue.size() == 1 && queue.peek() == STOP)) {
+                if (added && queue.size() == 0) {
                     return true;
                 }
                 wait(1);

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java?rev=1775638&r1=1775637&r2=1775638&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java Thu Dec 22 12:42:16 2016
@@ -37,7 +37,6 @@ import java.util.concurrent.ExecutorServ
 import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.observation.Filter;
@@ -161,7 +160,7 @@ public class BackgroundObserverTest {
 
     class Recorder implements FilteringAwareObserver {
 
-        List<Pair> includedChanges = new LinkedList<Pair>();
+        List<Pair> includedChanges = Collections.synchronizedList(new LinkedList<Pair>());
         private boolean pause;
         private boolean pausing;
 
@@ -397,6 +396,7 @@ public class BackgroundObserverTest {
         for (int i = 100; i < 10000; i += 50) {
             doTestExcludeSomeCommits(i, executor);
         }
+        executor.shutdownNow();
     }
 
     private void doTestExcludeSomeCommits(int cnt, Executor executor) throws Exception {