aboutsummaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorn.christian@seime.no>2018-09-28 10:40:15 +0200
committerGitHub <noreply@github.com>2018-09-28 10:40:15 +0200
commit157c8b77cfe432d0476f91eb87780e6b1fcd499f (patch)
treeab7dfa5d5f22882209053de435257c0e120a73c4 /documentapi
parent47684b0ffd876573bdc38ff71afa79db02c47519 (diff)
parent94e17398d4d35d42becbc78286a93251c7a42886 (diff)
Merge pull request #7129 from vespa-engine/bjorncs/documentapi
Remove use of finalizer
Diffstat (limited to 'documentapi')
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java
index 5a68e5bda2a..051ec44dd07 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java
@@ -13,6 +13,7 @@ import com.yahoo.messagebus.routing.RoutingContext;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* This policy implements the necessary logic to communicate with an external Vespa application and resolve its list of
@@ -30,6 +31,7 @@ public class ExternPolicy implements DocumentProtocolRoutingPolicy {
private int offset = 0;
private int generation = 0;
private final List<Hop> recipients = new ArrayList<>();
+ private final AtomicBoolean destroyed = new AtomicBoolean(false);
/**
* Constructs a new instance of this policy. The argument given is the connection spec to the slobrok to use for
@@ -110,13 +112,6 @@ public class ExternPolicy implements DocumentProtocolRoutingPolicy {
}
@Override
- @SuppressWarnings("deprecation") // finalize() is deprecated from Java 9
- public void finalize() throws Throwable {
- super.finalize();
- mirror.shutdown();
- orb.transport().shutdown().join();
- }
-
public void select(RoutingContext ctx) {
if (error != null) {
ctx.setError(DocumentProtocol.ERROR_POLICY_FAILURE, error);
@@ -135,13 +130,19 @@ public class ExternPolicy implements DocumentProtocolRoutingPolicy {
}
}
+ @Override
public void merge(RoutingContext ctx) {
DocumentProtocol.merge(ctx);
}
+ @Override
public void destroy() {
+ if (destroyed.getAndSet(true)) throw new RuntimeException("Already destroyed");
+ mirror.shutdown();
+ orb.transport().shutdown().join();
}
+ @Override
public MetricSet getMetrics() {
return null;
}