diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-05-24 19:52:57 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-05-24 19:52:57 +0200 |
commit | 15f7d366cd7e4d35dc62f01d8c8bcc59e11786c4 (patch) | |
tree | 58498baf393a3f7f995fade282f8e4976945a0d3 /config-model | |
parent | d1913b7446936ebd3d1699ed03f8ad7433bc5014 (diff) |
Check flush explicitly
Diffstat (limited to 'config-model')
3 files changed, 7 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java index 6d4da3d995c..8dea1b65079 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java @@ -102,14 +102,15 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon /** * Only used for testing. Stay away. - * @param name Name of this service. + * + * @param name the name of this service. */ public AbstractService(String name) { super(name); } @Override - protected void remove() { + public void remove() { super.remove(); if (hostResource != null) hostResource.deallocateService(this); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java b/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java index 38b668f121e..b6a9d2bf97a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostPorts.java @@ -39,6 +39,7 @@ public class HostPorts { private PortFinder portFinder = new PortFinder(Collections.emptyList()); + private boolean flushed = false; private Optional<NetworkPorts> networkPortsList = Optional.empty(); public HostPorts(String hostname) { @@ -147,7 +148,7 @@ public class HostPorts { } void deallocatePorts(NetworkPortRequestor service) { - if (networkPortsList.isPresent()) + if (flushed) throw new IllegalStateException("Cannot deallocate ports after calling flushPortReservations()"); portDB.entrySet().removeIf(entry -> entry.getValue().getServiceName().equals(service.getServiceName())); allocatedPorts--; @@ -155,6 +156,7 @@ public class HostPorts { public void flushPortReservations() { this.networkPortsList = Optional.of(new NetworkPorts(portFinder.allocations())); + this.flushed = true; } /** diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index d78a69b4802..d90a6614501 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -185,7 +185,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri deployState.getProperties()); HostSystem hostSystem = root.hostSystem(); - if (complete) { // create a a completed, frozen model + if (complete) { // create a completed, frozen model configModelRepo.readConfigModels(deployState, this, builder, root, configModelRegistry); addServiceClusters(deployState, builder); setupRouting(deployState); |