diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2018-09-28 10:40:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-28 10:40:15 +0200 |
commit | 157c8b77cfe432d0476f91eb87780e6b1fcd499f (patch) | |
tree | ab7dfa5d5f22882209053de435257c0e120a73c4 /documentapi | |
parent | 47684b0ffd876573bdc38ff71afa79db02c47519 (diff) | |
parent | 94e17398d4d35d42becbc78286a93251c7a42886 (diff) |
Merge pull request #7129 from vespa-engine/bjorncs/documentapi
Remove use of finalizer
Diffstat (limited to 'documentapi')
-rwxr-xr-x | documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java | 15 |
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; } |