You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2017/04/11 17:36:52 UTC
tinkerpop git commit: Re-worked ordering logic for
shouldProcessSessionRequestsInOrder()
Repository: tinkerpop
Updated Branches:
refs/heads/tp32 e4372b2dc -> 12e08c366
Re-worked ordering logic for shouldProcessSessionRequestsInOrder()
This test would fail intermittently - hoping this approach will work better. CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/12e08c36
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/12e08c36
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/12e08c36
Branch: refs/heads/tp32
Commit: 12e08c3667e7cc275fce79eac25ee767bfe79f24
Parents: e4372b2
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Apr 11 13:35:55 2017 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Apr 11 13:35:55 2017 -0400
----------------------------------------------------------------------
.../server/GremlinDriverIntegrateTest.java | 35 +++++++++++++-------
1 file changed, 23 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/12e08c36/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
index a8164b5..fd11508 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
@@ -60,9 +60,10 @@ import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@@ -72,6 +73,7 @@ import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.endsWith;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
import static org.hamcrest.core.AllOf.allOf;
import static org.hamcrest.number.OrderingComparison.greaterThan;
import static org.hamcrest.number.OrderingComparison.lessThanOrEqualTo;
@@ -406,19 +408,28 @@ public class GremlinDriverIntegrateTest extends AbstractGremlinServerIntegration
final CompletableFuture<List<Result>> futureFive = rsFive.all();
final CompletableFuture<List<Result>> futureZero = rsZero.all();
- final AtomicBoolean hit = new AtomicBoolean(false);
- while (!futureFive.isDone()) {
- // futureZero can't finish before futureFive - racy business here?
- assertThat(futureZero.isDone(), is(false));
- hit.set(true);
- }
+ final CountDownLatch latch = new CountDownLatch(2);
+ final List<String> order = new ArrayList<>();
+ final ExecutorService executor = Executors.newSingleThreadExecutor();
- // should have entered the loop at least once and thus proven that futureZero didn't return ahead of
- // futureFive
- assertThat(hit.get(), is(true));
+ futureFive.thenAcceptAsync(r -> {
+ order.add(r.get(0).getString());
+ latch.countDown();
+ }, executor);
- assertEquals("zero", futureZero.get().get(0).getString());
- assertEquals("five", futureFive.get(10, TimeUnit.SECONDS).get(0).getString());
+ futureZero.thenAcceptAsync(r -> {
+ order.add(r.get(0).getString());
+ latch.countDown();
+ }, executor);
+
+ // wait for both results
+ latch.await(30000, TimeUnit.MILLISECONDS);
+
+ // should be two results
+ assertEquals(2, order.size());
+
+ // ensure that "five" is first then "zero"
+ assertThat(order, contains("five", "zero"));
}
@Test