Merge remote-tracking branch 'origin/tp31'

Conflicts:
        
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java


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

Branch: refs/heads/TINKERPOP-1254
Commit: e5cbe53e4a339151782e0723f60be43423202e06
Parents: 88f3da5 6836f2f
Author: Stephen Mallette <[email protected]>
Authored: Wed Jul 6 11:45:52 2016 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Wed Jul 6 11:45:52 2016 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../upgrade/release-3.1.x-incubating.asciidoc   | 12 ++++
 .../gremlin/process/traversal/Scope.java        |  2 -
 .../server/op/AbstractEvalOpProcessor.java      | 59 +++++++++++++++++---
 .../server/GremlinServerIntegrateTest.java      | 20 +++++++
 5 files changed, 83 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5cbe53e/CHANGELOG.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5cbe53e/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
index c8371f3,f712b44..813174c
--- 
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
@@@ -24,9 -25,18 +24,17 @@@ import org.apache.tinkerpop.gremlin.dri
  import org.apache.tinkerpop.gremlin.driver.message.RequestMessage;
  import org.apache.tinkerpop.gremlin.driver.message.ResponseMessage;
  import org.apache.tinkerpop.gremlin.driver.message.ResponseStatusCode;
 -import org.apache.tinkerpop.gremlin.driver.ser.MessageTextSerializer;
  import org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor;
  import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptTimeoutException;
+ import org.apache.tinkerpop.gremlin.process.traversal.Operator;
+ import org.apache.tinkerpop.gremlin.process.traversal.Order;
+ import org.apache.tinkerpop.gremlin.process.traversal.Pop;
+ import org.apache.tinkerpop.gremlin.process.traversal.Scope;
+ import org.apache.tinkerpop.gremlin.server.GraphManager;
+ import org.apache.tinkerpop.gremlin.server.handler.Frame;
  import 
org.apache.tinkerpop.gremlin.server.handler.GremlinResponseFrameEncoder;
+ import org.apache.tinkerpop.gremlin.server.handler.StateKey;
+ import org.apache.tinkerpop.gremlin.structure.Column;
  import org.apache.tinkerpop.gremlin.structure.T;
  import org.apache.tinkerpop.gremlin.server.Context;
  import org.apache.tinkerpop.gremlin.server.GremlinServer;
@@@ -45,7 -59,9 +53,8 @@@ import java.util.Iterator
  import java.util.List;
  import java.util.Map;
  import java.util.Optional;
+ import java.util.Set;
  import java.util.concurrent.CompletableFuture;
 -import java.util.concurrent.TimeUnit;
  import java.util.concurrent.TimeoutException;
  import java.util.function.Supplier;
  import java.util.regex.Pattern;
@@@ -85,15 -107,42 +100,40 @@@ public abstract class AbstractEvalOpPro
       * Use of {@code toUpperCase()} on the accessor values of {@link T} 
solves an issue where the {@code ScriptEngine}
       * ignores private scope on {@link T} and imports static fields.
       */
-     private static final List<String> invalidBindingsKeys = Arrays.asList(
-             T.id.getAccessor(), T.key.getAccessor(),
-             T.label.getAccessor(), T.value.getAccessor(),
-             T.id.getAccessor().toUpperCase(), 
T.key.getAccessor().toUpperCase(),
-             T.label.getAccessor().toUpperCase(), 
T.value.getAccessor().toUpperCase());
-     private static final String invalidBindingKeysJoined = String.join(",", 
invalidBindingsKeys);
+     protected static final Set<String> INVALID_BINDINGS_KEYS = new 
HashSet<>();
+ 
+     static {
+         INVALID_BINDINGS_KEYS.addAll(Arrays.asList(
+                 T.id.name(), T.key.name(),
+                 T.label.name(), T.value.name(),
+                 T.id.getAccessor(), T.key.getAccessor(),
+                 T.label.getAccessor(), T.value.getAccessor(),
+                 T.id.getAccessor().toUpperCase(), 
T.key.getAccessor().toUpperCase(),
+                 T.label.getAccessor().toUpperCase(), 
T.value.getAccessor().toUpperCase()));
+ 
+         for (Column enumItem : Column.values()) {
+             INVALID_BINDINGS_KEYS.add(enumItem.name());
+         }
+ 
+         for (Order enumItem : Order.values()) {
+             INVALID_BINDINGS_KEYS.add(enumItem.name());
+         }
+ 
+         for (Operator enumItem : Operator.values()) {
+             INVALID_BINDINGS_KEYS.add(enumItem.name());
+         }
+ 
+         for (Scope enumItem : Scope.values()) {
+             INVALID_BINDINGS_KEYS.add(enumItem.name());
+         }
+ 
+         for (Pop enumItem : Pop.values()) {
+             INVALID_BINDINGS_KEYS.add(enumItem.name());
+         }
+     }
  
 -    protected final boolean manageTransactions;
 -
      protected AbstractEvalOpProcessor(final boolean manageTransactions) {
 -        this.manageTransactions = manageTransactions;
 +        super(manageTransactions);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e5cbe53e/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index a2b415d,2f091d9..37c310f
--- 
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
@@@ -440,8 -409,28 +440,28 @@@ public class GremlinServerIntegrateTes
  
              if (!latch.await(3000, TimeUnit.MILLISECONDS))
                  fail("Request should have returned error, but instead timed 
out");
 -            assertTrue(pass.get());
 +            assertThat(pass.get(), is(true));
          }
+ 
+         try (SimpleClient client = new WebSocketClient()) {
+             final Map<String, Object> bindings = new HashMap<>();
+             bindings.put("id", "123");
+             final RequestMessage request = 
RequestMessage.build(Tokens.OPS_EVAL)
+                     .addArg(Tokens.ARGS_GREMLIN, "[1,2,3,4,5,6,7,8,9,0]")
+                     .addArg(Tokens.ARGS_BINDINGS, bindings).create();
+             final CountDownLatch latch = new CountDownLatch(1);
+             final AtomicBoolean pass = new AtomicBoolean(false);
+             client.submit(request, result -> {
+                 if (result.getStatus().getCode() != 
ResponseStatusCode.PARTIAL_CONTENT) {
+                     
pass.set(ResponseStatusCode.REQUEST_ERROR_INVALID_REQUEST_ARGUMENTS == 
result.getStatus().getCode());
+                     latch.countDown();
+                 }
+             });
+ 
+             if (!latch.await(3000, TimeUnit.MILLISECONDS))
+                 fail("Request should have returned error, but instead timed 
out");
+             assertTrue(pass.get());
+         }
      }
  
      @Test

Reply via email to