This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch travis-fix in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 9aa06921722bd5b004c7f3a946b5dd19146bb5c1 Author: stephen <[email protected]> AuthorDate: Mon Nov 11 08:23:31 2019 -0500 Prevent a null pointer when session kill futuer is not present CTR --- .../org/apache/tinkerpop/gremlin/server/op/session/Session.java | 8 +++++++- .../tinkerpop/gremlin/server/op/session/SessionOpProcessor.java | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java index f41a0fb..7191d04 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/Session.java @@ -34,6 +34,7 @@ import javax.script.Bindings; import javax.script.SimpleBindings; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -155,7 +156,12 @@ public class Session { * session kill will mean. */ public void manualKill(final boolean force) { - kill.get().cancel(true); + // seems there is a situation where kill can get nulled. seems to only happen in travis as a result of test + // runs and i'm guessing it has something to do with a combination of shutdown and session close though i'm + // not sure why. perhaps this "fix" just masks up a deeper problem but as i reason on it now, it seems mostly + // bound to shutdown situations which basically means the forced end of the session anyway, so perhaps the + // root cause isn't something that needs immediate chasing (at least until it can be shown otherwise anyway) + Optional.ofNullable(kill.get()).ifPresent(f -> f.cancel(true)); kill(force); } diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java index 54a409b..545ae7e 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java @@ -124,7 +124,6 @@ public class SessionOpProcessor extends AbstractEvalOpProcessor { /** * Session based requests accept a "close" operator in addition to "eval". A close will trigger the session to be * killed and any uncommitted transaction to be rolled-back. - * @return */ @Override public Optional<ThrowingConsumer<Context>> selectOther(final RequestMessage requestMessage) throws OpProcessorException {
