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();
}
}