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

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


The following commit(s) were added to refs/heads/master-http by this push:
     new a74f0b0a31 cleanup for ResponseMessageV4 (#2698)
a74f0b0a31 is described below

commit a74f0b0a316884d099a6ec35f0d1d5633516c057
Author: Valentyn Kahamlyk <[email protected]>
AuthorDate: Fri Aug 2 09:43:36 2024 -0700

    cleanup for ResponseMessageV4 (#2698)
---
 .../tinkerpop/gremlin/driver/ResultQueue.java      | 20 +----
 .../apache/tinkerpop/gremlin/driver/ResultSet.java | 19 -----
 .../driver/handler/GremlinResponseHandler.java     |  2 +-
 .../gremlin/driver/AbstractResultQueueTest.java    |  2 +-
 .../tinkerpop/gremlin/driver/ResultQueueTest.java  | 10 +--
 .../tinkerpop/gremlin/driver/ResultSetTest.java    | 40 +---------
 .../gremlin/util/message/ResponseMessageV4.java    | 16 +---
 .../gremlin/util/message/ResponseResultV4.java     | 10 +--
 .../gremlin/util/message/ResponseStatusV4.java     | 17 -----
 .../util/ser/GraphBinaryMessageSerializerV4.java   |  6 +-
 .../ser/binary/ResponseMessageSerializerV4.java    | 86 ----------------------
 .../binary/GraphBinaryMessageSerializerV4Test.java |  6 +-
 12 files changed, 12 insertions(+), 222 deletions(-)

diff --git 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
index 7fc905115b..342a3130db 100644
--- 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
+++ 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultQueue.java
@@ -24,9 +24,7 @@ import org.javatuples.Pair;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.Queue;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -52,8 +50,6 @@ public final class ResultQueue {
 
     private final Queue<Pair<CompletableFuture<List<Result>>,Integer>> waiting 
= new ConcurrentLinkedQueue<>();
 
-    private Map<String,Object> statusAttributes = null;
-
     public ResultQueue(final LinkedBlockingQueue<Result> 
resultLinkedBlockingQueue, final CompletableFuture<Void> readComplete) {
         this.resultLinkedBlockingQueue = resultLinkedBlockingQueue;
         this.readComplete = readComplete;
@@ -69,14 +65,6 @@ public final class ResultQueue {
         tryDrainNextWaiting(false);
     }
 
-    private <V> V validate(final String aggregateTo, final Class<?> expected) {
-        if (!(expected.isAssignableFrom(aggregatedResult.getClass())))
-            throw new IllegalStateException(String.format("Side-effect \"%s\" 
contains the type %s that is not acceptable for %s",
-                    aggregatedResult.getClass().getSimpleName(), aggregateTo));
-
-        return (V) aggregatedResult;
-    }
-
     public CompletableFuture<List<Result>> await(final int items) {
         final CompletableFuture<List<Result>> result = new 
CompletableFuture<>();
         waiting.add(Pair.with(result, items));
@@ -105,14 +93,12 @@ public final class ResultQueue {
         resultLinkedBlockingQueue.drainTo(collection);
     }
 
-     public void markComplete(final Map<String, Object> statusAttributes) {
+     public void markComplete() {
         // if there was some aggregation performed in the queue then the full 
object is hanging out waiting to be
         // added to the ResultSet
         if (aggregatedResult != null)
             add(new Result(aggregatedResult));
 
-        this.statusAttributes = null == statusAttributes ? 
Collections.emptyMap() : statusAttributes;
-
         this.readComplete.complete(null);
 
         this.drainAllWaiting();
@@ -124,10 +110,6 @@ public final class ResultQueue {
         this.drainAllWaiting();
     }
 
-    Map<String,Object> getStatusAttributes() {
-        return statusAttributes;
-    }
-
     /**
      * Completes the next waiting future if there is one.
      */
diff --git 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultSet.java
 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultSet.java
index b41e416da0..22de4fe7e8 100644
--- 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultSet.java
+++ 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ResultSet.java
@@ -21,15 +21,12 @@ package org.apache.tinkerpop.gremlin.driver;
 import org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Spliterator;
 import java.util.Spliterators;
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.CompletionException;
 import java.util.concurrent.ExecutorService;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
@@ -76,22 +73,6 @@ public final class ResultSet implements Iterable<Result> {
         return host;
     }
 
-    /**
-     * Returns a future that will complete when {@link #allItemsAvailable()} 
is {@code true} and will contain the
-     * attributes from the response.
-     */
-    public CompletableFuture<Map<String,Object>> statusAttributes() {
-        return readCompleted.handleAsync((unusedInput, throwable) -> {
-            if (throwable != null) {
-                throw throwable instanceof CompletionException ?
-                        (CompletionException)throwable: new 
CompletionException(throwable);
-            } else {
-                return (null == resultQueue.getStatusAttributes() ?
-                        Collections.emptyMap() : 
resultQueue.getStatusAttributes());
-            }
-        }, executor);
-    }
-
     /**
      * Determines if all items have been returned to the client.
      */
diff --git 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/GremlinResponseHandler.java
 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/GremlinResponseHandler.java
index 83203f964c..4c6735cb85 100644
--- 
a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/GremlinResponseHandler.java
+++ 
b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/GremlinResponseHandler.java
@@ -88,7 +88,7 @@ public class GremlinResponseHandler extends 
SimpleChannelInboundHandler<Response
             final ResultQueue resultQueue = pending.getAndSet(null);
             if (resultQueue != null) {
                 if (null == 
channelHandlerContext.channel().attr(CAUGHT_EXCEPTION).get()) {
-                    
resultQueue.markComplete(response.getStatus().getAttributes());
+                    resultQueue.markComplete();
                 } else {
                     
resultQueue.markError(channelHandlerContext.channel().attr(CAUGHT_EXCEPTION).getAndSet(null));
                 }
diff --git 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/AbstractResultQueueTest.java
 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/AbstractResultQueueTest.java
index d87fd00d2c..806fa33e0a 100644
--- 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/AbstractResultQueueTest.java
+++ 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/AbstractResultQueueTest.java
@@ -94,7 +94,7 @@ public abstract class AbstractResultQueueTest {
                 }
             }
 
-            if (markDone) resultQueue.markComplete(Collections.emptyMap());
+            if (markDone) resultQueue.markComplete();
 
         }, "ResultQueueTest-job-submitter");
 
diff --git 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
index 4ca466435f..b487d5dc70 100644
--- 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
+++ 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultQueueTest.java
@@ -41,10 +41,6 @@ import static org.junit.Assert.fail;
  */
 public class ResultQueueTest extends AbstractResultQueueTest {
 
-    private static final Map<String,Object> ATTRIBUTES = new 
HashMap<String,Object>() {{
-        put("this", "that");
-    }};
-
     @Test
     public void shouldGetSizeUntilError() throws Exception {
         final Thread t = addToQueue(100, 10, true, false, 1);
@@ -135,7 +131,7 @@ public class ResultQueueTest extends 
AbstractResultQueueTest {
         resultQueue.add(new Result("test3"));
 
         assertThat(future.isDone(), is(false));
-        resultQueue.markComplete(ATTRIBUTES);
+        resultQueue.markComplete();
         assertThat(future.isDone(), is(true));
 
         final List<Result> results = future.get();
@@ -145,7 +141,6 @@ public class ResultQueueTest extends 
AbstractResultQueueTest {
         assertEquals(3, results.size());
 
         assertThat(resultQueue.isEmpty(), is(true));
-        assertEquals("that", resultQueue.getStatusAttributes().get("this"));
     }
 
     @Test
@@ -243,7 +238,7 @@ public class ResultQueueTest extends 
AbstractResultQueueTest {
         resultQueue.add(new Result("test2"));
         resultQueue.add(new Result("test3"));
 
-        resultQueue.markComplete(ATTRIBUTES);
+        resultQueue.markComplete();
 
         // you might want 30 but there are only three
         final CompletableFuture<List<Result>> future = resultQueue.await(30);
@@ -256,7 +251,6 @@ public class ResultQueueTest extends 
AbstractResultQueueTest {
         assertEquals(3, results.size());
 
         assertThat(resultQueue.isEmpty(), is(true));
-        assertEquals("that", resultQueue.getStatusAttributes().get("this"));
     }
 
     @Test
diff --git 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultSetTest.java
 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultSetTest.java
index 1a301dfa33..343b7c5f0a 100644
--- 
a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultSetTest.java
+++ 
b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ResultSetTest.java
@@ -22,10 +22,8 @@ import 
org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
@@ -43,10 +41,6 @@ import static org.junit.Assert.fail;
  */
 public class ResultSetTest extends AbstractResultQueueTest {
 
-    private static final Map<String,Object> ATTRIBUTES = new 
HashMap<String,Object>() {{
-        put("this", "that");
-    }};
-
     private ResultSet resultSet;
 
     @Before
@@ -54,13 +48,6 @@ public class ResultSetTest extends AbstractResultQueueTest {
         resultSet = new ResultSet(resultQueue, pool, readCompleted, 
RequestMessageV4.build("traversal").create(), null);
     }
 
-    @Test
-    public void shouldReturnEmptyMapForNoResponseAttributes() throws Exception 
{
-        final CompletableFuture<Map<String,Object>> attrs = 
resultSet.statusAttributes();
-        readCompleted.complete(null);
-        assertThat(attrs.get().isEmpty(), is(true));
-    }
-
     @Test
     public void shouldHaveAllItemsAvailableAsynchronouslyOnReadComplete() 
throws InterruptedException {
         final CompletableFuture<Void> all = resultSet.allItemsAvailableAsync();
@@ -82,25 +69,6 @@ public class ResultSetTest extends AbstractResultQueueTest {
         assertThat(all.isCompletedExceptionally(), is(true));
     }
 
-    @Test
-    public void shouldHaveStatusAttributesCompleteOnReadComplete() throws 
InterruptedException {
-        final CompletableFuture<Map<String,Object>> attrbFut = 
resultSet.statusAttributes();
-        readCompleted.complete(null);
-        // flush all tasks in pool
-        pool.awaitTermination(2, TimeUnit.SECONDS);
-        assertThat(attrbFut.isDone(), is(true));
-    }
-
-    @Test
-    public void 
shouldHaveStatusAttributesCompleteOnReadCompleteExceptionally() throws 
InterruptedException {
-        final CompletableFuture<Map<String,Object>> attrbFut = 
resultSet.statusAttributes();
-        readCompleted.completeExceptionally(new RuntimeException());
-        // flush all tasks in pool
-        pool.awaitTermination(2, TimeUnit.SECONDS);
-        assertThat(attrbFut.isDone(), is(true));
-        assertThat(attrbFut.isCompletedExceptionally(), is(true));
-    }
-
     @Test
     public void shouldHaveAllItemsAvailableOnReadComplete() throws 
InterruptedException {
         assertThat(resultSet.allItemsAvailable(), is(false));
@@ -154,7 +122,7 @@ public class ResultSetTest extends AbstractResultQueueTest {
         resultQueue.add(new Result("test3"));
 
         assertThat(future.isDone(), is(false));
-        resultQueue.markComplete(ATTRIBUTES);
+        resultQueue.markComplete();
         assertThat(future.isDone(), is(true));
 
         final List<Result> results = future.get();
@@ -165,8 +133,6 @@ public class ResultSetTest extends AbstractResultQueueTest {
 
         assertThat(resultSet.allItemsAvailable(), is(true));
         assertEquals(0, resultSet.getAvailableItemCount());
-
-        assertEquals("that", resultQueue.getStatusAttributes().get("this"));
     }
 
     @Test
@@ -177,7 +143,7 @@ public class ResultSetTest extends AbstractResultQueueTest {
         resultQueue.add(new Result("test3"));
 
         assertThat(future.isDone(), is(false));
-        resultQueue.markComplete(ATTRIBUTES);
+        resultQueue.markComplete();
 
         final List<Result> results = future.get();
         assertEquals("test1", results.get(0).getString());
@@ -188,8 +154,6 @@ public class ResultSetTest extends AbstractResultQueueTest {
         assertThat(future.isDone(), is(true));
         assertThat(resultSet.allItemsAvailable(), is(true));
         assertEquals(0, resultSet.getAvailableItemCount());
-
-        assertEquals("that", resultQueue.getStatusAttributes().get("this"));
     }
 
     @Test
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseMessageV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseMessageV4.java
index 10f0c0183b..967363d439 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseMessageV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseMessageV4.java
@@ -21,9 +21,7 @@ package org.apache.tinkerpop.gremlin.util.message;
 import io.netty.handler.codec.http.HttpResponseStatus;
 
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * The model for a response message that is sent to the server beginning in 
4.0.0. ResponseMessageV4 is designed to be
@@ -103,8 +101,6 @@ public final class ResponseMessageV4 {
         private List<Object> result = Collections.emptyList();
         private String statusMessage = null;
         private String exception = null;
-        private Map<String, Object> attributes = Collections.emptyMap();
-        private Map<String, Object> metaData = Collections.emptyMap();
 
         private Builder() { }
 
@@ -123,23 +119,13 @@ public final class ResponseMessageV4 {
             return this;
         }
 
-        public Builder statusAttributes(final Map<String, Object> attributes) {
-            this.attributes = attributes;
-            return this;
-        }
-
         public Builder result(final List<Object> result) {
             this.result = result;
             return this;
         }
 
-        public Builder responseMetaData(final Map<String, Object> metaData) {
-            this.metaData = metaData;
-            return this;
-        }
-
         public ResponseMessageV4 create() {
-            final ResponseResultV4 responseResult = new 
ResponseResultV4(result, metaData);
+            final ResponseResultV4 responseResult = new 
ResponseResultV4(result);
             // skip null values
             if (code == null && statusMessage == null) {
                 return new ResponseMessageV4(null, responseResult);
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseResultV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseResultV4.java
index 1711a3c0bc..7dd3aa7524 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseResultV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseResultV4.java
@@ -19,33 +19,25 @@
 package org.apache.tinkerpop.gremlin.util.message;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * Data model for the "result" portion of a {@link ResponseMessageV4}.
  */
 public final class ResponseResultV4 {
     private final List<Object> data;
-    private final Map<String, Object> meta;
 
-    public ResponseResultV4(final List<Object> data, final Map<String, Object> 
meta) {
+    public ResponseResultV4(final List<Object> data) {
         this.data = data;
-        this.meta = meta;
     }
 
     public List<Object> getData() {
         return data;
     }
 
-    public Map<String, Object> getMeta() {
-        return meta;
-    }
-
     @Override
     public String toString() {
         return "ResponseResult{" +
                 "data=" + data +
-                ", meta=" + meta +
                 '}';
     }
 }
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseStatusV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseStatusV4.java
index d0861b7ca4..cdf808f197 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseStatusV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/ResponseStatusV4.java
@@ -30,20 +30,11 @@ public final class ResponseStatusV4 {
     private final HttpResponseStatus code;
     private final String message;
     private final String exception;
-    private final Map<String, Object> attributes;
-
-    public ResponseStatusV4(final HttpResponseStatus code, final String 
message, final Map<String, Object> attributes) {
-        this.code = code;
-        this.message = message;
-        this.attributes = attributes;
-        this.exception = null;
-    }
 
     public ResponseStatusV4(final HttpResponseStatus code, final String 
message, final String exception) {
         this.code = code;
         this.message = message;
         this.exception = exception;
-        this.attributes = Collections.emptyMap();
     }
 
     /**
@@ -67,14 +58,6 @@ public final class ResponseStatusV4 {
         return exception;
     }
 
-    /**
-     * Gets the meta-data related to the response.  If meta-data is returned 
it is to be considered specific to the
-     * "op" that is executed.  Not all "op" implementations will return 
meta-data.
-     */
-    public Map<String, Object> getAttributes() {
-        return attributes;
-    }
-
     @Override
     public String toString() {
         return "ResponseStatus{" +
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/GraphBinaryMessageSerializerV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/GraphBinaryMessageSerializerV4.java
index d98c7cfd85..7fc23f3ef8 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/GraphBinaryMessageSerializerV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/GraphBinaryMessageSerializerV4.java
@@ -35,7 +35,6 @@ import 
org.apache.tinkerpop.gremlin.util.message.RequestMessageV4;
 import org.apache.tinkerpop.gremlin.util.message.ResponseMessageV4;
 import org.apache.tinkerpop.gremlin.util.message.ResponseStatusV4;
 import org.apache.tinkerpop.gremlin.util.ser.binary.RequestMessageSerializerV4;
-import 
org.apache.tinkerpop.gremlin.util.ser.binary.ResponseMessageSerializerV4;
 import org.javatuples.Pair;
 import org.javatuples.Triplet;
 
@@ -55,8 +54,7 @@ public class GraphBinaryMessageSerializerV4 extends 
AbstractMessageSerializerV4<
     private GraphBinaryReader reader;
     private GraphBinaryWriter writer;
     private RequestMessageSerializerV4 requestSerializer;
-    private ResponseMessageSerializerV4 responseSerializer;
-    private GraphBinaryMapper mapper;
+    private final GraphBinaryMapper mapper;
 
     private static final NettyBufferFactory bufferFactory = new 
NettyBufferFactory();
     private static final String MIME_TYPE = SerTokensV4.MIME_GRAPHBINARY_V4;
@@ -74,7 +72,6 @@ public class GraphBinaryMessageSerializerV4 extends 
AbstractMessageSerializerV4<
         mapper = new GraphBinaryMapper(writer, reader);
 
         requestSerializer = new RequestMessageSerializerV4();
-        responseSerializer = new ResponseMessageSerializerV4();
     }
 
     public GraphBinaryMessageSerializerV4(final TypeSerializerRegistry.Builder 
builder) {
@@ -129,7 +126,6 @@ public class GraphBinaryMessageSerializerV4 extends 
AbstractMessageSerializerV4<
         writer = new GraphBinaryWriter(registry);
 
         requestSerializer = new RequestMessageSerializerV4();
-        responseSerializer = new ResponseMessageSerializerV4();
     }
 
     @Override
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/ResponseMessageSerializerV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/ResponseMessageSerializerV4.java
deleted file mode 100644
index fd5e600cf0..0000000000
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/ser/binary/ResponseMessageSerializerV4.java
+++ /dev/null
@@ -1,86 +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.util.ser.binary;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.handler.codec.http.HttpResponseStatus;
-import org.apache.tinkerpop.gremlin.structure.io.Buffer;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
-import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryWriter;
-import org.apache.tinkerpop.gremlin.util.message.ResponseMessageV4;
-import org.apache.tinkerpop.gremlin.util.message.ResponseResultV4;
-import org.apache.tinkerpop.gremlin.util.message.ResponseStatusV4;
-import org.apache.tinkerpop.gremlin.util.ser.NettyBufferFactory;
-import org.apache.tinkerpop.gremlin.util.ser.SerializationException;
-
-import java.io.IOException;
-import java.util.Map;
-
-public class ResponseMessageSerializerV4 {
-    private static final NettyBufferFactory bufferFactory = new 
NettyBufferFactory();
-
-    public ResponseMessageV4 readValue(final ByteBuf byteBuf, final 
GraphBinaryReader context) throws SerializationException {
-        // Wrap netty's buffer
-        final Buffer buffer = bufferFactory.create(byteBuf);
-        final int version = buffer.readByte() & 0xff;
-
-        if (version >>> 7 != 1) {
-            // This is an indication that the response buffer was incorrectly 
built
-            // Or the buffer offsets are wrong
-            throw new SerializationException("The most significant bit should 
be set according to the format");
-        }
-
-        try {
-            return ResponseMessageV4.build()
-                    .code(HttpResponseStatus.valueOf(context.readValue(buffer, 
Integer.class, false)))
-                    .statusMessage(context.readValue(buffer, String.class, 
true))
-                    .statusAttributes(context.readValue(buffer, Map.class, 
false))
-                    .responseMetaData(context.readValue(buffer, Map.class, 
false))
-                    .result(context.read(buffer))
-                    .create();
-        } catch (IOException ex) {
-            throw new SerializationException(ex);
-        }
-    }
-
-    public void writeValue(final ResponseMessageV4 value, final ByteBuf 
byteBuf, final GraphBinaryWriter context) throws SerializationException {
-        // Wrap netty's buffer
-        final Buffer buffer = bufferFactory.create(byteBuf);
-
-        final ResponseResultV4 result = value.getResult();
-        final ResponseStatusV4 status = value.getStatus();
-
-        try {
-            // Version
-            buffer.writeByte(GraphBinaryWriter.VERSION_BYTE);
-            // Status code
-            context.writeValue(status.getCode().code(), buffer, false);
-            // Nullable status message
-            context.writeValue(status.getMessage(), buffer, true);
-            // Status attributes
-            context.writeValue(status.getAttributes(), buffer, false);
-            // Result meta
-            context.writeValue(result.getMeta(), buffer, false);
-            // Fully-qualified value
-            context.write(result.getData(), buffer);
-        } catch (IOException ex) {
-            throw new SerializationException(ex);
-        }
-    }
-}
diff --git 
a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/GraphBinaryMessageSerializerV4Test.java
 
b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/GraphBinaryMessageSerializerV4Test.java
index df95403306..6d28f1c74e 100644
--- 
a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/GraphBinaryMessageSerializerV4Test.java
+++ 
b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/util/ser/binary/GraphBinaryMessageSerializerV4Test.java
@@ -174,7 +174,7 @@ public class GraphBinaryMessageSerializerV4Test {
         // Status
         assertEquals(footer.getStatus().getCode(), 
deserialized.getStatus().getCode());
         assertEquals(footer.getStatus().getMessage(), 
deserialized.getStatus().getMessage());
-        assertEquals(footer.getStatus().getException(), 
footer.getStatus().getException());
+        assertEquals(footer.getStatus().getException(), 
deserialized.getStatus().getException());
         // Result
         List<Integer> combinedData = new ArrayList<>();
         Stream.of(headerData, chunkData1, 
chunkData2).forEach(combinedData::addAll);
@@ -208,18 +208,16 @@ public class GraphBinaryMessageSerializerV4Test {
         if (expected.getStatus() != null && actual.getStatus() != null) {
             assertEquals(expected.getStatus().getCode(), 
actual.getStatus().getCode());
             assertEquals(expected.getStatus().getMessage(), 
actual.getStatus().getMessage());
-            assertEquals(expected.getStatus().getAttributes(), 
actual.getStatus().getAttributes());
         }
         // Result
         // null == empty List
         if (!isEmptyData(expected) && !isEmptyData(actual)) {
             assertEquals(expected.getResult().getData(), 
actual.getResult().getData());
         }
-        assertEquals(expected.getResult().getMeta(), 
actual.getResult().getMeta());
     }
 
     private static boolean isEmptyData(final ResponseMessageV4 
responseMessage) {
         return responseMessage.getResult() == null || 
responseMessage.getResult().getData() == null ||
-                ((List) responseMessage.getResult().getData()).isEmpty();
+                responseMessage.getResult().getData().isEmpty();
     }
 }

Reply via email to