diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ServerKeywordExecutable.java b/server/base/src/main/java/org/apache/accumulo/server/util/ServerKeywordExecutable.java index 0c406f24e0c..04251f250df 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/ServerKeywordExecutable.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/ServerKeywordExecutable.java @@ -31,14 +31,17 @@ public abstract class ServerKeywordExecutable extends BaseKeywordExecutable { - private final ServerContext context; + private ServerContext context; public ServerKeywordExecutable(OPTS options) { super(options); - context = new ServerContext(SiteConfiguration.auto()); } - public ServerContext getServerContext() { + public synchronized ServerContext getServerContext() { + if (context == null) { + context = new ServerContext(SiteConfiguration.auto()); + } + if (context.isClosed()) { throw new IllegalStateException( "Cannot use context after execute method has completed. Context is closed.");