summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-01-24 09:57:45 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-01-24 09:57:45 +0100
commitdd2386a177c94d9c4aacf692bf4112008043998a (patch)
treeabcaf8f143864eca4d7ea984598f00b4cfad6840 /container-core
parentc9ac4edeec6a905bedbfb6d605acb3dd7034262c (diff)
Ensure only provider shuts down the VespaDocumentAccess
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/documentapi/VespaDocumentAccess.java11
2 files changed, 10 insertions, 3 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java b/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
index 7f1a069fd92..44a70ea2f3b 100644
--- a/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
+++ b/container-core/src/main/java/com/yahoo/container/core/documentapi/DocumentAccessProvider.java
@@ -33,7 +33,7 @@ public class DocumentAccessProvider implements Provider<VespaDocumentAccess> {
@Override
public void deconstruct() {
- access.shutdown();
+ access.protectedShutdown();
}
diff --git a/container-core/src/main/java/com/yahoo/container/core/documentapi/VespaDocumentAccess.java b/container-core/src/main/java/com/yahoo/container/core/documentapi/VespaDocumentAccess.java
index 87a5a90dde3..6976299cc7d 100644
--- a/container-core/src/main/java/com/yahoo/container/core/documentapi/VespaDocumentAccess.java
+++ b/container-core/src/main/java/com/yahoo/container/core/documentapi/VespaDocumentAccess.java
@@ -1,7 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.core.documentapi;
-import com.yahoo.cloud.config.SlobroksConfig;
import com.yahoo.document.config.DocumentmanagerConfig;
import com.yahoo.document.select.parser.ParseException;
import com.yahoo.documentapi.AsyncParameters;
@@ -19,12 +18,14 @@ import com.yahoo.documentapi.VisitorSession;
import com.yahoo.documentapi.messagebus.MessageBusDocumentAccess;
import com.yahoo.documentapi.messagebus.MessageBusParams;
import com.yahoo.documentapi.messagebus.loadtypes.LoadTypeSet;
-import com.yahoo.messagebus.MessagebusConfig;
import com.yahoo.documentapi.messagebus.protocol.DocumentProtocolPoliciesConfig;
+import com.yahoo.messagebus.MessagebusConfig;
import com.yahoo.vespa.config.content.DistributionConfig;
import com.yahoo.vespa.config.content.LoadTypeConfig;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* Wraps a lazily initialised {@link DocumentAccess}. Lazy to allow it to always be set up.
@@ -34,6 +35,8 @@ import java.util.concurrent.atomic.AtomicReference;
*/
public class VespaDocumentAccess extends DocumentAccess {
+ private static final Logger log = Logger.getLogger(VespaDocumentAccess.class.getName());
+
private final MessageBusParams parameters;
private final AtomicReference<DocumentAccess> delegate = new AtomicReference<>();
@@ -68,6 +71,10 @@ public class VespaDocumentAccess extends DocumentAccess {
@Override
public void shutdown() {
+ log.log(Level.WARNING, "This injected document access should only be shut down by the container", new IllegalStateException());
+ }
+
+ void protectedShutdown() {
delegate.updateAndGet(access -> {
super.shutdown();
shutDown = true;