Github user spmallette commented on a diff in the pull request:
https://github.com/apache/tinkerpop/pull/800#discussion_r169065664
--- Diff:
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
---
@@ -147,7 +149,12 @@ public void init(final
ServerGremlinExecutor<EventLoopGroup> serverGremlinExecut
public void initChannel(final SocketChannel ch) throws Exception {
final ChannelPipeline pipeline = ch.pipeline();
- if (sslContext.isPresent()) pipeline.addLast(PIPELINE_SSL,
sslContext.get().newHandler(ch.alloc()));
+ sslContext.ifPresent(sslContext -> pipeline.addLast(PIPELINE_SSL,
sslContext.newHandler(ch.alloc())));
+
+ // checks for no activity on a channel and triggers an event that
is consumed by the OpSelectorHandler
+ // and either closes the connection or sends a ping to see if the
client is still alive
+ if (supportsIdleMonitor())
+ pipeline.addLast(new IdleStateHandler((int)
(settings.idleReadLimit / 1000), (int) (settings.idleWriteLimit / 1000),0));
--- End diff --
The constructor for `IdleStateHandler` is seconds but all Gremlin Server
time settings are milliseconds so i had to convert:
https://netty.io/4.0/api/io/netty/handler/timeout/IdleStateHandler.html#IdleStateHandler-int-int-int-
---