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 2015/05/12 19:55:18 UTC

[1/4] incubator-tinkerpop git commit: Remove some todo comments - obsolete.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 37cb34b88 -> 5a63155b8


Remove some todo comments - obsolete.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/f773d133
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/f773d133
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/f773d133

Branch: refs/heads/master
Commit: f773d133e060a111bca0d743031cb22790d77e58
Parents: 582ccd3
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 12 12:08:48 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue May 12 12:08:48 2015 -0400

----------------------------------------------------------------------
 .../tinkerpop/gremlin/server/handler/IteratorHandler.java |  3 ---
 .../gremlin/server/op/AbstractEvalOpProcessor.java        |  9 ---------
 .../tinkerpop/gremlin/structure/VertexPropertyTest.java   | 10 +---------
 3 files changed, 1 insertion(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f773d133/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
index 7076cd1..2fcfc1b 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/IteratorHandler.java
@@ -110,9 +110,6 @@ public class IteratorHandler extends ChannelOutboundHandlerAdapter {
                         logger.warn(errorMessage);
                         ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create());
                     }
-
-                    // todo: no need to write terminator anymore
-                    // ctx.writeAndFlush(ResponseMessage.build(requestMessage).code(ResponseStatusCode.PARTIAL_CONTENT).create());
                 });
             } finally {
                 ReferenceCountUtil.release(msg);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f773d133/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
index 8d4d734..c64ee63 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
@@ -178,15 +178,6 @@ public abstract class AbstractEvalOpProcessor implements OpProcessor {
                     ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create());
                 }
             }
-
-            // todo: no need to terminate anymore - handled by error code
-            /*
-            else {
-                // since this is not an error we need to terminate.  termination for errors is handled in the
-                // ResponseEncoder
-                ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.PARTIAL_CONTENT).create());
-            }
-            */
             return null;
         }, executor);
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f773d133/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
index 6f42be4..d5fb52e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
@@ -474,13 +474,6 @@ public class VertexPropertyTest extends AbstractGremlinTest {
     })
     public static class ExceptionConsistencyWhenVertexPropertyRemovedTest extends AbstractGremlinTest {
 
-        // todo: need to cover actual meta property assignment here as VertexTest doesn't check for that features
-        /*
-        {"v.property(k,v)", FunctionUtils.wrapConsumer((Vertex v) -> {
-            v.property("k", "v");
-        })},
-        */
-
         @Parameterized.Parameters(name = "{0}")
         public static Iterable<Object[]> data() {
             return Arrays.asList(new Object[][]{
@@ -533,8 +526,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
             final Vertex v = graph.addVertex("name", "marko", "age", 34);
             tryCommit(graph, g -> {
                 assertEquals(2, IteratorUtils.count(v.properties()));
-                assertVertexEdgeCounts(1, 0);
-                // TODO: Neo4j needs a better ID system for VertexProperties
+                assertVertexEdgeCounts(1, 0)
                 assertEquals(v.property("name"), v.property("name").property("acl", "public").element());
                 assertEquals(v.property("age"), v.property("age").property("acl", "private").element());
             });


[3/4] incubator-tinkerpop git commit: Merge remote-tracking branch 'origin/master'

Posted by sp...@apache.org.
Merge remote-tracking branch 'origin/master'


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/5247fb11
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/5247fb11
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/5247fb11

Branch: refs/heads/master
Commit: 5247fb11263fd2c9ffaf03d8de76f1708b339fba
Parents: 75eeb12 37cb34b
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 12 13:49:34 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue May 12 13:49:34 2015 -0400

----------------------------------------------------------------------
 .../traversal/dsl/graph/GraphTraversal.java     |   7 +-
 .../traversal/lambda/BiPredicateTraversal.java  |  66 +++++++++++
 .../traversal/step/filter/WhereStep.java        | 114 +++++--------------
 .../process/traversal/util/TraversalUtil.java   |  24 ++++
 .../apache/tinkerpop/gremlin/structure/P.java   |   6 +
 5 files changed, 129 insertions(+), 88 deletions(-)
----------------------------------------------------------------------



[2/4] incubator-tinkerpop git commit: Added missing semicolon.

Posted by sp...@apache.org.
Added missing semicolon.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/75eeb124
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/75eeb124
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/75eeb124

Branch: refs/heads/master
Commit: 75eeb12423e97ae8903f99a64df57fa1c46bf1cb
Parents: f773d13
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 12 12:14:23 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue May 12 12:14:23 2015 -0400

----------------------------------------------------------------------
 .../org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/75eeb124/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
index d5fb52e..c4cf182 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexPropertyTest.java
@@ -526,7 +526,7 @@ public class VertexPropertyTest extends AbstractGremlinTest {
             final Vertex v = graph.addVertex("name", "marko", "age", 34);
             tryCommit(graph, g -> {
                 assertEquals(2, IteratorUtils.count(v.properties()));
-                assertVertexEdgeCounts(1, 0)
+                assertVertexEdgeCounts(1, 0);
                 assertEquals(v.property("name"), v.property("name").property("acl", "public").element());
                 assertEquals(v.property("age"), v.property("age").property("acl", "private").element());
             });


[4/4] incubator-tinkerpop git commit: Streamline error handling in the script eval/iteration process.

Posted by sp...@apache.org.
Streamline error handling in the script eval/iteration process.

Had two separate handlers for errors, but eval errors were bubbling to the iteration handler.  Seemed better to combine those, plus there was nothing globally catching ALL errors.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/5a63155b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/5a63155b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/5a63155b

Branch: refs/heads/master
Commit: 5a63155b873a6da87ee36d1290483d0492c3db76
Parents: 5247fb1
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 12 13:53:55 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue May 12 13:53:55 2015 -0400

----------------------------------------------------------------------
 .../server/op/AbstractEvalOpProcessor.java      | 28 +++++++++++---------
 .../server/GremlinServerIntegrateTest.java      |  4 +--
 2 files changed, 18 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5a63155b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
index c64ee63..86941ac 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
@@ -50,6 +50,7 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Supplier;
 
 import static com.codahale.metrics.MetricRegistry.name;
@@ -146,13 +147,10 @@ public abstract class AbstractEvalOpProcessor implements OpProcessor {
 
         final CompletableFuture<Object> evalFuture = gremlinExecutor.eval(script, language, bindings);
         evalFuture.handle((v, t) -> timerContext.stop());
-        evalFuture.exceptionally(se -> {
-            logger.warn(String.format("Exception processing a script on request [%s].", msg), se);
-            ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_SCRIPT_EVALUATION).statusMessage(se.getMessage()).create());
-            return null;
-        });
 
+        final AtomicBoolean iterationFired = new AtomicBoolean(false);
         final CompletableFuture<Void> iterationFuture = evalFuture.thenAcceptAsync(o -> {
+            iterationFired.set(true);
             final Iterator itty = IteratorUtils.asIterator(o);
 
             logger.debug("Preparing to iterate results from - {} - in thread [{}]", msg, Thread.currentThread().getName());
@@ -160,22 +158,28 @@ public abstract class AbstractEvalOpProcessor implements OpProcessor {
             try {
                 handleIterator(context, itty);
             } catch (Exception te) {
-                // todo: throwing here dumps to handeAsync below but no message is returned to the client!!
                 throw new RuntimeException(te);
             }
         }, executor);
 
-        iterationFuture.handleAsync((r, ex) -> {
+        iterationFuture.handleAsync((o, ex) -> {
             // iteration has completed
             if (ex != null) {
-                // an exception could have fired in the evalFuture - it interestingly bubbles up here so we have to
-                // check for the iteration exception (which is a TimeoutException).  otherwise the exception would
-                // have been dealt with from a messaging perspective as part of the "exceptionally" completion stage
-                // of the evalFuture itself.
-                if (ExceptionUtils.getRootCause(ex).getClass().equals(TimeoutException.class)) {
+                // an exception could have fired in the evalFuture - it bubbles up here so we have to
+                // check for the iteration exception or something more general.
+                final Throwable root = ExceptionUtils.getRootCause(ex);
+                if (!iterationFired.get()) {
+                    // iteration wasn't executed so this must have raised during the eval process
+                    logger.warn(String.format("Exception processing a script on request [%s].", msg), root);
+                    ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_SCRIPT_EVALUATION).statusMessage(root.getMessage()).create());
+                    return null;
+                } else if (root.getClass().equals(TimeoutException.class)) {
                     final String errorMessage = String.format("Response iteration and serialization exceeded the configured threshold for request [%s] - %s", msg, ex.getCause().getMessage());
                     logger.warn(errorMessage);
                     ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create());
+                } else {
+                    logger.warn(String.format("Exception processing a script on request [%s].", msg), root);
+                    ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR).statusMessage(root.getMessage()).create());
                 }
             }
             return null;

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5a63155b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 1c1d37e..f44a17a 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.server;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.log4j.Logger;
 import org.apache.tinkerpop.gremlin.driver.Client;
 import org.apache.tinkerpop.gremlin.driver.Cluster;
@@ -265,7 +266,7 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
             client.submit("Thread.sleep(3000);'some-stuff-that-should not return'").all().join();
             fail("Should throw an exception.");
         } catch (RuntimeException re) {
-            assertTrue(re.getCause().getCause().getMessage().startsWith("Script evaluation exceeded the configured threshold of 200 ms for request"));
+            assertTrue(ExceptionUtils.getRootCause(re).getMessage().startsWith("Script evaluation exceeded the configured threshold of 200 ms for request"));
         } finally {
             cluster.close();
         }
@@ -452,7 +453,6 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
             Thread.sleep(1000);
 
             assertEquals(1, messages.get());
-
         }
     }