You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ke...@apache.org on 2026/05/15 03:25:43 UTC
(tinkerpop) branch jstream2 updated: Slight options modifications.
This is an automated email from the ASF dual-hosted git repository.
kenhuuu pushed a commit to branch jstream2
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/jstream2 by this push:
new c3c63831f4 Slight options modifications.
c3c63831f4 is described below
commit c3c63831f4089cefbdd28d607b8a0cd46fc80fc6
Author: Ken Hu <10...@users.noreply.github.com>
AuthorDate: Thu May 14 20:25:15 2026 -0700
Slight options modifications.
---
.../gremlin/driver/handler/HttpStreamingResponseHandler.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpStreamingResponseHandler.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpStreamingResponseHandler.java
index ea0d897aac..602148d848 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpStreamingResponseHandler.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/handler/HttpStreamingResponseHandler.java
@@ -90,7 +90,7 @@ public class HttpStreamingResponseHandler extends MessageToMessageDecoder<HttpOb
this.graphBinaryReader = graphBinaryReader;
this.pendingResultSet = pendingResultSet;
this.maxResponseContentLength = maxResponseContentLength;
- this.readerExecutor = new ThreadPoolExecutor(0, 1, 60L, TimeUnit.SECONDS,
+ this.readerExecutor = new ThreadPoolExecutor(0, 1, 30L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(),
new BasicThreadFactory.Builder().namingPattern(
"gremlin-driver-stream-reader-" + UUID.randomUUID().toString().substring(0, 8)).build());
@@ -179,9 +179,9 @@ public class HttpStreamingResponseHandler extends MessageToMessageDecoder<HttpOb
queueInputStream.signalEndOfStream();
}
releaseErrorBody();
- // shutdownNow() interrupts the reader thread if it's blocked waiting for data,
- // ensuring it doesn't linger after the connection is gone.
- readerExecutor.shutdownNow();
+ // The reader thread terminates naturally after consuming END_OF_STREAM.
+ // The executor's idle timeout reclaims the thread. We intentionally avoid
+ // shutdownNow() because the interrupt races with the reader's EOF handling.
super.channelInactive(ctx);
}