You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/11/12 00:56:31 UTC
[tinkerpop] 01/02: Prevent a null pointer when session kill futuer
is not present CTR
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 8d9db3990377f9ffd382abe115805afce025b72f
Author: stephen <sp...@gmail.com>
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 {