aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2023-03-02 11:05:09 +0100
committerGitHub <noreply@github.com>2023-03-02 11:05:09 +0100
commitf3d2f7088759c302f86e74d4f69f609c599c6423 (patch)
treee079c24f8051ff13de353e02bd7133f4c2f8bcad /controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
parent79e834ed9fe6acad5e22bbee1fcc914026105fd6 (diff)
parenta2a1d23864dc76b8b1d7441bb65670b4230cb63a (diff)
Merge pull request #26268 from vespa-engine/jonmv/another-try-with-resources
Another try-with-res to preserve any original exception
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index f6ac4626196..d1545537d48 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -891,16 +891,17 @@ public class ApplicationController {
*/
private Optional<LockedApplication> deactivate(ApplicationId instanceId, ZoneId zone, Optional<LockedApplication> application) {
DeploymentId id = new DeploymentId(instanceId, zone);
- try {
- configServer.deactivate(id);
- } finally {
+ interface CleanCloseable extends AutoCloseable { void close(); }
+ try (CleanCloseable postDeactivation = () -> {
application.ifPresent(app -> controller.routing().of(id).configure(app.get().deploymentSpec()));
if (id.zoneId().environment().isManuallyDeployed())
applicationStore.putMetaTombstone(id, clock.instant());
- if (!id.zoneId().environment().isTest())
+ if ( ! id.zoneId().environment().isTest())
controller.notificationsDb().removeNotifications(NotificationSource.from(id));
+ }) {
+ configServer.deactivate(id);
+ return application.map(app -> app.with(instanceId.instance(), instance -> instance.withoutDeploymentIn(id.zoneId())));
}
- return application.map(app -> app.with(instanceId.instance(), instance -> instance.withoutDeploymentIn(id.zoneId())));
}
public DeploymentTrigger deploymentTrigger() { return deploymentTrigger; }