This is an automated email from the ASF dual-hosted git repository.

kenhuuu pushed a commit to branch master-http-final
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 6de313320f6eb497b21d733edfc06e93881888a6
Author: kenhuuu <[email protected]>
AuthorDate: Tue Oct 29 13:31:13 2024 -0700

    Remove Traverser serializers for GraphSON/GraphBinary V4 (#2862)
---
 .../io/binary/TypeSerializerRegistry.java          |   2 -
 .../io/binary/types/TraverserSerializer.java       |  51 ----------
 .../structure/io/graphson/GraphSONModule.java      |   3 -
 .../io/graphson/GraphSONTypeSerializerV4.java      |   2 -
 .../io/graphson/TraversalSerializersV4.java        |  48 ---------
 .../graphson/GraphSONMapperEmbeddedTypeTest.java   |   9 --
 .../GraphSONMapperPartialEmbeddedTypeTest.java     |   7 --
 .../server/handler/HttpGremlinEndpointHandler.java |   4 +-
 .../gremlin/server/GremlinDriverIntegrateTest.java |   7 +-
 .../io/graphbinary/bulked-traverser-v4.gbin        | Bin 93 -> 0 bytes
 .../io/graphbinary/empty-traverser-v4.gbin         | Bin 12 -> 0 bytes
 .../io/graphbinary/vertex-traverser-v4.gbin        | Bin 451 -> 0 bytes
 .../structure/io/graphson/bulked-traverser-v4.json |  32 ------
 .../structure/io/graphson/empty-traverser-v4.json  |  10 --
 .../structure/io/graphson/vertex-traverser-v4.json | 109 ---------------------
 .../ser/AbstractGraphSONMessageSerializerV4.java   |   3 +
 .../io/AbstractTypedCompatibilityTest.java         |  48 ---------
 17 files changed, 12 insertions(+), 323 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
index 6ee2a5fc60..a5b9f79047 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/TypeSerializerRegistry.java
@@ -52,7 +52,6 @@ import 
org.apache.tinkerpop.gremlin.structure.io.binary.types.SingleTypeSerializ
 import org.apache.tinkerpop.gremlin.structure.io.binary.types.StringSerializer;
 import 
org.apache.tinkerpop.gremlin.structure.io.binary.types.TransformSerializer;
 import 
org.apache.tinkerpop.gremlin.structure.io.binary.types.TraversalExplanationSerializer;
-import 
org.apache.tinkerpop.gremlin.structure.io.binary.types.TraverserSerializer;
 import org.apache.tinkerpop.gremlin.structure.io.binary.types.TreeSerializer;
 import org.apache.tinkerpop.gremlin.structure.io.binary.types.UUIDSerializer;
 import 
org.apache.tinkerpop.gremlin.structure.io.binary.types.VertexPropertySerializer;
@@ -104,7 +103,6 @@ public class TypeSerializerRegistry {
             new RegistryEntry<>(Vertex.class, new VertexSerializer()),
             new RegistryEntry<>(Direction.class, 
EnumSerializer.DirectionSerializer),
             new RegistryEntry<>(T.class, EnumSerializer.TSerializer),
-            new RegistryEntry<>(Traverser.class, new TraverserSerializer()),
             new RegistryEntry<>(BigDecimal.class, new BigDecimalSerializer()),
             new RegistryEntry<>(BigInteger.class, new BigIntegerSerializer()),
             new RegistryEntry<>(Byte.class, 
SingleTypeSerializer.ByteSerializer),
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java
deleted file mode 100644
index 6361fb01e8..0000000000
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/binary/types/TraverserSerializer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.structure.io.binary.types;
-
-import org.apache.tinkerpop.gremlin.structure.io.binary.DataType;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
-import 
org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.structure.io.Buffer;
-
-import java.io.IOException;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public class TraverserSerializer extends SimpleTypeSerializer<Traverser> {
-
-    public TraverserSerializer() {
-        super(DataType.TRAVERSER);
-    }
-
-    @Override
-    protected Traverser readValue(final Buffer buffer, final GraphBinaryReader 
context) throws IOException {
-        final long bulk = context.readValue(buffer, Long.class, false);
-        final Object v = context.read(buffer);
-        return new DefaultRemoteTraverser<>(v, bulk);
-    }
-
-    @Override
-    protected void writeValue(final Traverser value, final Buffer buffer, 
final GraphBinaryWriter context) throws IOException {
-        context.writeValue(value.bulk(), buffer, false);
-        context.write(value.get(), buffer);
-    }
-}
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index b19cbb4931..175114d149 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -167,7 +167,6 @@ abstract class GraphSONModule extends 
TinkerPopJacksonModule {
                     put(Metrics.class, "Metrics");
                     put(TraversalMetrics.class, "TraversalMetrics");
                     put(TraversalExplanation.class, "TraversalExplanation");
-                    put(Traverser.class, "Traverser");
                     put(Tree.class, "Tree");
                     put(AndP.class, "P");
                     put(OrP.class, "P");
@@ -274,7 +273,6 @@ abstract class GraphSONModule extends 
TinkerPopJacksonModule {
                     T.class).forEach(e -> addSerializer(e, new 
TraversalSerializersV4.EnumJacksonSerializer()));
             addSerializer(P.class, new 
TraversalSerializersV4.PJacksonSerializer());
             addSerializer(Lambda.class, new 
TraversalSerializersV4.LambdaJacksonSerializer());
-            addSerializer(Traverser.class, new 
TraversalSerializersV4.TraverserJacksonSerializer());
             addSerializer(TraversalStrategy.class, new 
TraversalSerializersV4.TraversalStrategyJacksonSerializer());
 
             /////////////////////// DESERIALIZERS ////////////////////////////
@@ -317,7 +315,6 @@ abstract class GraphSONModule extends 
TinkerPopJacksonModule {
             addDeserializer(P.class, new 
TraversalSerializersV4.PJacksonDeserializer());
             addDeserializer(TextP.class, new 
TraversalSerializersV4.TextPJacksonDeserializer());
             addDeserializer(Lambda.class, new 
TraversalSerializersV4.LambdaJacksonDeserializer());
-            addDeserializer(Traverser.class, new 
TraversalSerializersV4.TraverserJacksonDeserializer());
             Arrays.asList(
                     ConnectiveStrategy.class,
                     ElementIdStrategy.class,
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
index 17a406bb8d..a6ba23b576 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV4.java
@@ -147,8 +147,6 @@ public class GraphSONTypeSerializerV4 extends 
AbstractGraphSONTypeSerializer {
             mapped = ByteBuffer.class;
         else if (InetAddress.class.isAssignableFrom(c))
             mapped = InetAddress.class;
-        else if (Traverser.class.isAssignableFrom(c))
-            mapped = Traverser.class;
         else if (Lambda.class.isAssignableFrom(c))
             mapped = Lambda.class;
         else if (VertexProperty.Cardinality.class.isAssignableFrom(c))
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
index fec60d2aa8..77a905cc35 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/TraversalSerializersV4.java
@@ -21,12 +21,10 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
 import org.apache.commons.configuration2.ConfigurationConverter;
 import org.apache.commons.configuration2.MapConfiguration;
-import 
org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.TraversalStrategyProxy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.AndP;
@@ -159,22 +157,6 @@ final class TraversalSerializersV4 {
         }
     }
 
-    final static class TraverserJacksonSerializer extends 
StdScalarSerializer<Traverser> {
-
-        public TraverserJacksonSerializer() {
-            super(Traverser.class);
-        }
-
-        @Override
-        public void serialize(final Traverser traverserInstance, final 
JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
-                throws IOException {
-            jsonGenerator.writeStartObject();
-            jsonGenerator.writeObjectField(GraphSONTokens.BULK, 
traverserInstance.bulk());
-            jsonGenerator.writeObjectField(GraphSONTokens.VALUE, 
traverserInstance.get());
-            jsonGenerator.writeEndObject();
-        }
-    }
-
     final static class TraversalStrategyJacksonSerializer extends 
StdScalarSerializer<TraversalStrategy> {
 
         public TraversalStrategyJacksonSerializer() {
@@ -400,36 +382,6 @@ final class TraversalSerializersV4 {
         }
     }
 
-    static class TraverserJacksonDeserializer extends 
StdDeserializer<Traverser> {
-
-        public TraverserJacksonDeserializer() {
-            super(Traverser.class);
-        }
-
-        @Override
-        public Traverser deserialize(final JsonParser jsonParser, final 
DeserializationContext deserializationContext) throws IOException, 
JsonProcessingException {
-            long bulk = 1;
-            Object v = null;
-
-            while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
-                if (jsonParser.getCurrentName().equals(GraphSONTokens.BULK)) {
-                    jsonParser.nextToken();
-                    bulk = deserializationContext.readValue(jsonParser, 
Long.class);
-                } else if 
(jsonParser.getCurrentName().equals(GraphSONTokens.VALUE)) {
-                    jsonParser.nextToken();
-                    v = deserializationContext.readValue(jsonParser, 
Object.class);
-                }
-            }
-
-            return new DefaultRemoteTraverser<>(v, bulk);
-        }
-
-        @Override
-        public boolean isCachable() {
-            return true;
-        }
-    }
-
     final static class TraversalStrategyProxyJacksonDeserializer<T extends 
TraversalStrategy> extends AbstractObjectDeserializer<TraversalStrategyProxy> {
 
         private final Class<T> clazz;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
index 94086371dc..872df275e2 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
-import 
org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.Compare;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.PBiPredicate;
@@ -242,14 +241,6 @@ public class GraphSONMapperEmbeddedTypeTest extends 
AbstractGraphSONTest {
         assertEquals(o, serializeDeserialize(mapper, o, Lambda.class));
     }
 
-    @Test
-    public void shouldHandleTraverser() throws Exception {
-        assumeThat(version, not(startsWith("v1")));
-
-        final Traverser<String> o = new DefaultRemoteTraverser<>("test", 100);
-        assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
-    }
-
     @Test
     public void shouldHandleDuration() throws Exception  {
         final Duration o = Duration.ZERO;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
index 75331741d2..5315c1a9ec 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperPartialEmbeddedTypeTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tinkerpop.gremlin.structure.io.graphson;
 
-import 
org.apache.tinkerpop.gremlin.process.remote.traversal.DefaultRemoteTraverser;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.TextP;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
@@ -275,12 +274,6 @@ public class GraphSONMapperPartialEmbeddedTypeTest extends 
AbstractGraphSONTest
         assertNotEquals(myList, read);
     }
 
-    @Test
-    public void shouldHandleDefaultRemoteTraverser() throws Exception {
-        final DefaultRemoteTraverser<String> o = new 
DefaultRemoteTraverser<>("test", 100);
-        assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
-    }
-
     @Test
     public void shouldHandleVariantsOfP() throws Exception {
         final List<P> variantsOfP = Arrays.asList(
diff --git 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
index 040b1e9edf..9aa0fa4f87 100644
--- 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
+++ 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
@@ -61,6 +61,7 @@ import org.apache.tinkerpop.gremlin.util.Tokens;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessage;
 import org.apache.tinkerpop.gremlin.util.message.ResponseMessage;
+import org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV4;
 import org.codehaus.groovy.control.MultipleCompilationErrorsException;
 import org.javatuples.Pair;
 import org.slf4j.Logger;
@@ -315,7 +316,8 @@ public class HttpGremlinEndpointHandler extends 
SimpleChannelInboundHandler<Requ
 
         final String bulkingSetting = 
context.getChannelHandlerContext().channel().attr(StateKey.REQUEST_HEADERS).get().get(Tokens.BULKED);
         // bulking only applies if it's gremlin-lang, and per request token 
setting takes precedence over header setting.
-        final boolean bulking = Objects.equals(language, "gremlin-lang") ?
+        // The serializer check is temporarily needed because GraphSON hasn't 
been removed yet and doesn't support bulking.
+        final boolean bulking = language.equals("gremlin-lang") && serializer 
instanceof GraphBinaryMessageSerializerV4 ?
                 (args.containsKey(Tokens.BULKED) ?
                         Objects.equals(args.get(Tokens.BULKED), "true") :
                         Objects.equals(bulkingSetting, "true")) :
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 6dc11483f1..19d56491af 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
@@ -217,7 +217,12 @@ public class GremlinDriverIntegrateTest extends 
AbstractGremlinServerIntegration
 
         try {
             final Client client = cluster.connect();
-            assertEquals(2, 
client.submit("g.inject(2)").all().get().get(0).getInt());
+            final RequestOptions ro = RequestOptions.build()
+                    .addG("gmodern")
+                    .language("gremlin-lang")
+                    .withBulkedResult(true)
+                    .create();
+            assertEquals(6, client.submit("g.V()", ro).all().get().size());
         } finally {
             cluster.close();
         }
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin
deleted file mode 100644
index 8878bbec8e..0000000000
Binary files 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/bulked-traverser-v4.gbin
 and /dev/null differ
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin
deleted file mode 100644
index c5f3d9af99..0000000000
Binary files 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/empty-traverser-v4.gbin
 and /dev/null differ
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin
deleted file mode 100644
index 46e02df795..0000000000
Binary files 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphbinary/vertex-traverser-v4.gbin
 and /dev/null differ
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json
deleted file mode 100644
index c954e4e9af..0000000000
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/bulked-traverser-v4.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "@type" : "g:Traverser",
-  "@value" : {
-    "bulk" : {
-      "@type" : "g:Int64",
-      "@value" : 7
-    },
-    "value" : {
-      "@type" : "g:Vertex",
-      "@value" : {
-        "id" : {
-          "@type" : "g:Int32",
-          "@value" : 11
-        },
-        "label" : [ "software" ],
-        "properties" : {
-          "name" : [ {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 5
-              },
-              "value" : "tinkergraph",
-              "label" : [ "name" ]
-            }
-          } ]
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json
deleted file mode 100644
index 08298d82f3..0000000000
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/empty-traverser-v4.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "@type" : "g:Traverser",
-  "@value" : {
-    "bulk" : {
-      "@type" : "g:Int64",
-      "@value" : 0
-    },
-    "value" : null
-  }
-}
\ No newline at end of file
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json
deleted file mode 100644
index 91dcb6d8ea..0000000000
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/vertex-traverser-v4.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
-  "@type" : "g:Traverser",
-  "@value" : {
-    "bulk" : {
-      "@type" : "g:Int64",
-      "@value" : 1
-    },
-    "value" : {
-      "@type" : "g:Vertex",
-      "@value" : {
-        "id" : {
-          "@type" : "g:Int32",
-          "@value" : 1
-        },
-        "label" : [ "person" ],
-        "properties" : {
-          "name" : [ {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 0
-              },
-              "value" : "marko",
-              "label" : [ "name" ]
-            }
-          } ],
-          "location" : [ {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 6
-              },
-              "value" : "san diego",
-              "label" : [ "location" ],
-              "properties" : {
-                "startTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 1997
-                },
-                "endTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2001
-                }
-              }
-            }
-          }, {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 7
-              },
-              "value" : "santa cruz",
-              "label" : [ "location" ],
-              "properties" : {
-                "startTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2001
-                },
-                "endTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2004
-                }
-              }
-            }
-          }, {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 8
-              },
-              "value" : "brussels",
-              "label" : [ "location" ],
-              "properties" : {
-                "startTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2004
-                },
-                "endTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2005
-                }
-              }
-            }
-          }, {
-            "@type" : "g:VertexProperty",
-            "@value" : {
-              "id" : {
-                "@type" : "g:Int64",
-                "@value" : 9
-              },
-              "value" : "santa fe",
-              "label" : [ "location" ],
-              "properties" : {
-                "startTime" : {
-                  "@type" : "g:Int32",
-                  "@value" : 2005
-                }
-              }
-            }
-          } ]
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
index 48b0b28bd2..5bca08ebcf 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/AbstractGraphSONMessageSerializerV4.java
@@ -335,6 +335,9 @@ public abstract class AbstractGraphSONMessageSerializerV4 
extends AbstractMessag
             if (data.containsKey(Tokens.ARGS_BATCH_SIZE)) {
                 builder.addChunkSize((int) data.get(Tokens.ARGS_BATCH_SIZE));
             }
+            if (data.containsKey(Tokens.BULKED)) {
+                
builder.addBulkedResult(Boolean.parseBoolean(data.get(Tokens.BULKED).toString()));
+            }
 
             return builder.create();
         }
diff --git 
a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
 
b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
index bd8dee9cb4..5aff82e004 100644
--- 
a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
+++ 
b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
@@ -708,54 +708,6 @@ public abstract class AbstractTypedCompatibilityTest 
extends AbstractCompatibili
         IoTest.assertCrewGraph(recycled, false);
     }
 
-    @Test
-    public void shouldReadWriteVertexTraverser() throws Exception {
-        final String resourceName = "vertex-traverser";
-
-        final Traverser resource = findModelEntryObject(resourceName);
-        final Traverser fromStatic = read(readFromResource(resourceName), 
Traverser.class);
-        final Traverser recycled = read(write(fromStatic, Traverser.class, 
resourceName), Traverser.class);
-        assertNotSame(fromStatic, recycled);
-        assertEquals(resource.bulk(), recycled.bulk());
-        assertEquals(resource.bulk(), fromStatic.bulk());
-        assertEquals(resource.get(), recycled.get());
-        assertEquals(resource.get(), fromStatic.get());
-        assertVertex((Vertex) resource.get(), (Vertex) recycled.get());
-        assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
-    }
-
-    @Test
-    public void shouldReadWriteBulkedTraverser() throws Exception {
-        final String resourceName = "bulked-traverser";
-
-        final Traverser resource = findModelEntryObject(resourceName);
-        final Traverser fromStatic = read(readFromResource(resourceName), 
Traverser.class);
-        final Traverser recycled = read(write(fromStatic, Traverser.class, 
resourceName), Traverser.class);
-        assertNotSame(fromStatic, recycled);
-        assertEquals(resource.bulk(), recycled.bulk());
-        assertEquals(resource.bulk(), fromStatic.bulk());
-        assertEquals(resource.get(), recycled.get());
-        assertEquals(resource.get(), fromStatic.get());
-        assertVertex((Vertex) resource.get(), (Vertex) recycled.get());
-        assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
-    }
-
-    @Test
-    public void shouldReadWriteEmptyTraverser() throws Exception {
-        final String resourceName = "empty-traverser";
-
-        final Traverser resource = findModelEntryObject(resourceName);
-        final Traverser fromStatic = read(readFromResource(resourceName), 
Traverser.class);
-        final Traverser recycled = read(write(fromStatic, Traverser.class, 
resourceName), Traverser.class);
-        assertNotSame(fromStatic, recycled);
-        assertEquals(resource.bulk(), recycled.bulk());
-        assertEquals(resource.bulk(), fromStatic.bulk());
-        assertEquals(resource.get(), recycled.get());
-        assertEquals(resource.get(), fromStatic.get());
-        assertEquals(recycled.bulk(), fromStatic.bulk());
-        assertEquals(recycled.get(), fromStatic.get());
-    }
-
     @Test
     public void shouldReadWriteUUID() throws Exception {
         final String resourceName = "specified-uuid";

Reply via email to