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

kenhuuu 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 102e76d665 Remove RequestId from RequestMessageV4 CTR.
102e76d665 is described below

commit 102e76d665a5bc0c97a2f4f858e15b0c1e5ac9db
Author: Ken Hu <[email protected]>
AuthorDate: Tue May 14 20:51:34 2024 -0700

    Remove RequestId from RequestMessageV4 CTR.
    
    The user is no longer allowed to set a custom UUID per request and the
    request ID is always generated by the server so remove it from the
    RequestMessageV4.
---
 .../server/handler/HttpGremlinEndpointHandler.java |  8 ++--
 .../handler/HttpRequestMessageDecoderTest.java     | 44 ++--------------------
 .../gremlin/util/message/RequestMessageV4.java     | 11 ------
 3 files changed, 9 insertions(+), 54 deletions(-)

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 5698321dcc..bcb93ffc6a 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
@@ -81,6 +81,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.UUID;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
 import java.util.concurrent.RejectedExecutionException;
@@ -402,8 +403,8 @@ public class HttpGremlinEndpointHandler extends 
SimpleChannelInboundHandler<Requ
 
     private void iterateTraversal(final Context context, 
MessageSerializerV4<?> serializer, Traversal.Admin<?, ?> traversal)
             throws InterruptedException {
-        final RequestMessageV4 msg = context.getRequestMessage();
-        logger.debug("Traversal request {} for in thread {}", 
msg.getRequestId(), Thread.currentThread().getName());
+        final UUID requestId = 
context.getChannelHandlerContext().attr(StateKey.REQUEST_ID).get();
+        logger.debug("Traversal request {} for in thread {}", requestId, 
Thread.currentThread().getName());
 
         // compile the traversal - without it getEndStep() has nothing in it
         traversal.applyStrategies();
@@ -583,7 +584,8 @@ public class HttpGremlinEndpointHandler extends 
SimpleChannelInboundHandler<Requ
             return serializer.serializeResponseAsBinary(responseMessage, 
nettyContext.alloc());
 
         } catch (Exception ex) {
-            logger.warn("The result [{}] in the request {} could not be 
serialized and returned.", aggregate, msg.getRequestId(), ex);
+            final UUID requestId = 
ctx.getChannelHandlerContext().attr(StateKey.REQUEST_ID).get();
+            logger.warn("The result [{}] in the request {} could not be 
serialized and returned.", aggregate, requestId, ex);
             writeError(ctx, GremlinError.serialization(ex), serializer);
             throw ex;
         }
diff --git 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/handler/HttpRequestMessageDecoderTest.java
 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/handler/HttpRequestMessageDecoderTest.java
index 8c13acb7f4..0fe18c15e6 100644
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/handler/HttpRequestMessageDecoderTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/handler/HttpRequestMessageDecoderTest.java
@@ -88,7 +88,7 @@ public class HttpRequestMessageDecoderTest {
         assertNull(testChannel.readInbound());
 
         ByteBuf out = testChannel.readOutbound();
-        assertTrue(out.toString(CharsetUtil.UTF_8).contains("Mime type 
mismatch"));
+        assertTrue(out.toString(CharsetUtil.UTF_8).contains("Unable to 
deserialize request using"));
     }
 
     @Test
@@ -120,10 +120,8 @@ public class HttpRequestMessageDecoderTest {
         final EmbeddedChannel testChannel = new EmbeddedChannel(new 
HttpServerCodec(), new HttpObjectAggregator(Integer.MAX_VALUE), 
requestMessageDecoder);
 
         final String gremlin = "g.V().hasLabel('person')";
-        final UUID requestId = UUID.randomUUID();
         final ByteBuf buffer = allocator.buffer();
         buffer.writeCharSequence("{ \"gremlin\": \"" + gremlin +
-                        "\", \"requestId\": \"" + requestId +
                         "\", \"language\":  \"gremlin-groovy\"}",
                 CharsetUtil.UTF_8);
 
@@ -138,7 +136,6 @@ public class HttpRequestMessageDecoderTest {
 
         final RequestMessageV4 decodedRequestMessage = 
testChannel.readInbound();
         assertEquals(gremlin, decodedRequestMessage.getGremlin());
-        assertEquals(requestId, decodedRequestMessage.getRequestId());
         assertEquals("gremlin-groovy", 
decodedRequestMessage.getField(Tokens.ARGS_LANGUAGE));
     }
 
@@ -148,10 +145,8 @@ public class HttpRequestMessageDecoderTest {
         final EmbeddedChannel testChannel = new EmbeddedChannel(new 
HttpServerCodec(), new HttpObjectAggregator(Integer.MAX_VALUE), 
requestMessageDecoder);
 
         final String gremlin = "g.V(x)";
-        final UUID requestId = 
UUID.fromString("1e55c495-22d5-4a39-934a-a2744ba010ef");
         final ByteBuf buffer = allocator.buffer();
         buffer.writeCharSequence("{ \"gremlin\": \"" + gremlin +
-                        "\", \"requestId\": \"" + requestId +
                         "\", \"bindings\":{\"x\":\"2\"}" +
                         ", \"language\":  \"gremlin-groovy\"}",
                 CharsetUtil.UTF_8);
@@ -167,39 +162,10 @@ public class HttpRequestMessageDecoderTest {
 
         final RequestMessageV4 decodedRequestMessage = 
testChannel.readInbound();
         assertEquals(gremlin, decodedRequestMessage.getGremlin());
-        assertEquals(requestId, decodedRequestMessage.getRequestId());
         assertEquals("gremlin-groovy", 
decodedRequestMessage.getField(Tokens.ARGS_LANGUAGE));
         assertEquals("2", 
((Map)decodedRequestMessage.getField(Tokens.ARGS_BINDINGS)).get("x"));
     }
 
-    @Test
-    public void shouldErrorOnBadRequestWithInvalidUuid() throws 
SerializationException {
-        final HttpRequestMessageDecoder requestMessageDecoder = new 
HttpRequestMessageDecoder(serializers);
-        final EmbeddedChannel testChannel = new EmbeddedChannel(new 
HttpServerCodec(), new HttpObjectAggregator(Integer.MAX_VALUE), 
requestMessageDecoder);
-
-        final String gremlin = "g.V(x)";
-        final String requestId = "notaUUID";
-        final ByteBuf buffer = allocator.buffer();
-        buffer.writeCharSequence("{ \"gremlin\": \"" + gremlin +
-                        "\", \"requestId\": \"" + requestId +
-                        "\", \"language\":  \"gremlin-groovy\"}",
-                CharsetUtil.UTF_8);
-
-        final HttpHeaders headers = new DefaultHttpHeaders();
-        headers.add(HttpHeaderNames.CONTENT_TYPE, SerTokens.MIME_JSON);
-
-        final FullHttpRequest httpRequest = new 
DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "",
-                buffer, headers, new DefaultHttpHeaders());
-
-        testChannel.writeInbound(httpRequest);
-        testChannel.finish();
-
-        assertNull(testChannel.readInbound());
-
-        ByteBuf out = testChannel.readOutbound();
-        assertTrue(out.toString(CharsetUtil.UTF_8).contains("Invalid UUID 
string"));
-    }
-
     @Test
     public void shouldErrorOnBadRequestWithMalformedJson() throws 
SerializationException {
         final HttpRequestMessageDecoder requestMessageDecoder = new 
HttpRequestMessageDecoder(serializers);
@@ -232,12 +198,10 @@ public class HttpRequestMessageDecoderTest {
         final EmbeddedChannel testChannel = new EmbeddedChannel(new 
HttpServerCodec(), new HttpObjectAggregator(Integer.MAX_VALUE), 
requestMessageDecoder);
 
         final String gremlin = "g.V(x)";
-        final UUID requestId = UUID.randomUUID();
         final ByteBuf buffer = allocator.buffer();
-        // requestId contains a typo here as requetId
+        // language contains a typo here as lnguage
         buffer.writeCharSequence("{ \"gremlin\": \"" + gremlin +
-                        "\", \"requetId\": \"" + requestId +
-                        "\", \"language\":  \"gremlin-groovy\"}",
+                        "\", \"lnguage\":  \"abc\"}",
                 CharsetUtil.UTF_8);
 
         final HttpHeaders headers = new DefaultHttpHeaders();
@@ -250,7 +214,7 @@ public class HttpRequestMessageDecoderTest {
         testChannel.finish();
 
         final RequestMessageV4 decodedRequestMessage = 
testChannel.readInbound();
-        assertNotEquals(requestId, decodedRequestMessage.getRequestId());
+        assertNotEquals("abc", 
decodedRequestMessage.getField(Tokens.ARGS_LANGUAGE));
     }
 
     @Test
diff --git 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
index e457dc921e..f3fa0f72f8 100644
--- 
a/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
+++ 
b/gremlin-util/src/main/java/org/apache/tinkerpop/gremlin/util/message/RequestMessageV4.java
@@ -40,7 +40,6 @@ public final class RequestMessageV4 {
     private String gremlinType; // Type information needed to help deserialize 
"gremlin" into either String/Bytecode.
     private Object gremlin; // Should be either a String or Bytecode type.
     private Map<String, Object> fields;
-    private UUID requestId;
 
     private RequestMessageV4(final Object gremlin, final Map<String, Object> 
fields) {
         if (null == gremlin) throw new 
IllegalArgumentException("RequestMessage requires gremlin argument");
@@ -61,8 +60,6 @@ public final class RequestMessageV4 {
         }
 
         this.fields.put("gremlinType", gremlinType);
-
-        requestId = UUID.randomUUID();
     }
 
     /**
@@ -70,14 +67,6 @@ public final class RequestMessageV4 {
      */
     private RequestMessageV4() { }
 
-    /**
-     * The id of the current request.
-     * Used only in GLV, not transmitted to the server.
-     */
-    public UUID getRequestId() {
-        return requestId;
-    }
-
     public <T> Optional<T> optionalField(final String key) {
         final Object o = fields.get(key);
         return o == null ? Optional.empty() : Optional.of((T) o);

Reply via email to