Author: jukka
Date: Fri Mar 21 21:35:26 2014
New Revision: 1580061
URL: http://svn.apache.org/r1580061
Log:
@trivial speed up ObservationRefreshTest by avoiding unnecessary waiting
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationRefreshTest.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationRefreshTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationRefreshTest.java?rev=1580061&r1=1580060&r2=1580061&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationRefreshTest.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationRefreshTest.java
Fri Mar 21 21:35:26 2014
@@ -113,7 +113,7 @@ public class ObservationRefreshTest exte
n.addNode("n" + i);
n.getSession().save();
}
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
@Override
public boolean evaluate() {
return listener.numAdded == 1000;
@@ -126,7 +126,7 @@ public class ObservationRefreshTest exte
n.getNode("n" + i).remove();
n.getSession().save();
}
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
@Override
public boolean evaluate() {
return listener.numRemoved == 1000;
@@ -139,7 +139,7 @@ public class ObservationRefreshTest exte
n.setProperty("test" + i, "foo");
n.getSession().save();
}
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
@Override
public boolean evaluate() {
return listener.numPropsAdded == 1100;
@@ -152,7 +152,7 @@ public class ObservationRefreshTest exte
n.setProperty("test" + i, i);
n.getSession().save();
}
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
@Override
public boolean evaluate() {
return listener.numPropsModified == 100;
@@ -165,21 +165,21 @@ public class ObservationRefreshTest exte
n.setProperty("test100", "foo");
n.getSession().save();
assertTrue("Gave up waiting for events",
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
- @Override
- public boolean evaluate() {
- return listener.test100Exists;
- }
- }));
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
+ @Override
+ public boolean evaluate() {
+ return listener.test100Exists;
+ }
+ }));
n.getProperty("test100").remove();
n.getSession().save();
assertTrue("Gave up waiting for events",
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
- @Override
- public boolean evaluate() {
- return !listener.test100Exists;
- }
- }));
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
+ @Override
+ public boolean evaluate() {
+ return !listener.test100Exists;
+ }
+ }));
}
assertEquals("", listener.error);
@@ -187,7 +187,7 @@ public class ObservationRefreshTest exte
n.getProperty("test" + i).remove();
n.getSession().save();
}
- Timer.waitFor(CONDITION_TIMEOUT, new Condition() {
+ listener.waitFor(CONDITION_TIMEOUT, new Condition() {
@Override
public boolean evaluate() {
return listener.numPropsRemoved == 1100;
@@ -204,19 +204,6 @@ public class ObservationRefreshTest exte
private interface Condition {
boolean evaluate();
}
- private static class Timer {
-
- public static boolean waitFor(long timeout, Condition c) throws
InterruptedException {
- long end = System.currentTimeMillis() + timeout;
- while (System.currentTimeMillis() < end) {
- if (c.evaluate()) {
- return true;
- }
- Thread.sleep(100);
- }
- return false;
- }
- }
private class MyListener implements EventListener {
@@ -235,7 +222,7 @@ public class ObservationRefreshTest exte
private volatile boolean test100Exists = false;
@Override
- public void onEvent(EventIterator events) {
+ public synchronized void onEvent(EventIterator events) {
try {
while (events.hasNext()) {
Event event = events.nextEvent();
@@ -301,8 +288,24 @@ public class ObservationRefreshTest exte
} catch (Exception e) {
error = e.toString();
e.printStackTrace();
+ } finally {
+ notifyAll();
}
+ }
+ synchronized boolean waitFor(long timeout, Condition c)
+ throws InterruptedException {
+ long end = System.currentTimeMillis() + timeout;
+ long remaining = end - System.currentTimeMillis();
+ while (remaining > 0) {
+ if (c.evaluate()) {
+ return true;
+ }
+ wait(remaining);
+ remaining = end - System.currentTimeMillis();
+ }
+ return false;
}
+
}
}