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 2014/01/29 15:43:31 UTC
svn commit: r1562461 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java
test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java
Author: mreutegg
Date: Wed Jan 29 14:43:30 2014
New Revision: 1562461
URL: http://svn.apache.org/r1562461
Log:
OAK-1365: RevisionTest.difference() fails occasionally
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java?rev=1562461&r1=1562460&r2=1562461&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Revision.java Wed Jan 29 14:43:30 2014
@@ -161,14 +161,15 @@ public class Revision {
}
/**
- * Get the difference between two timestamps (a - b) in milliseconds.
+ * Get the timestamp difference between two revisions (r1 - r2) in
+ * milliseconds.
*
- * @param a the first timestamp
- * @param b the second timestamp
+ * @param r1 the first revision
+ * @param r2 the second revision
* @return the difference in milliseconds
*/
- public static long getTimestampDifference(long a, long b) {
- return a - b;
+ public static long getTimestampDifference(Revision r1, Revision r2) {
+ return r1.getTimestamp() - r2.getTimestamp();
}
public static Revision fromString(String rev) {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java?rev=1562461&r1=1562460&r2=1562461&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionTest.java Wed Jan 29 14:43:30 2014
@@ -44,15 +44,20 @@ public class RevisionTest {
@Test
public void difference() throws InterruptedException {
+ long t0 = Revision.getCurrentTimestamp();
Revision r0 = Revision.newRevision(0);
Revision r1 = Revision.newRevision(0);
- long timestamp = Revision.getCurrentTimestamp();
- assertTrue(Revision.getTimestampDifference(r1.getTimestamp(), r0.getTimestamp()) < 10);
- assertTrue(Revision.getTimestampDifference(timestamp, r0.getTimestamp()) < 10);
- Thread.sleep(2);
+ long t1 = Revision.getCurrentTimestamp();
+ // the difference must not be more than t1 - t0
+ assertTrue(Revision.getTimestampDifference(r1, r0) <= (t1 - t0));
+ // busy wait until we have a timestamp different from t1
+ long t2;
+ do {
+ t2 = Revision.getCurrentTimestamp();
+ } while (t1 == t2);
+
Revision r2 = Revision.newRevision(0);
- assertTrue(Revision.getTimestampDifference(r2.getTimestamp(), r0.getTimestamp()) > 0);
- assertTrue(Revision.getTimestampDifference(r2.getTimestamp(), r0.getTimestamp()) < 20);
+ assertTrue(Revision.getTimestampDifference(r2, r1) > 0);
}
@Test