aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java2
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java23
3 files changed, 24 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
index ab33a99298e..2066b98aeb9 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java
@@ -102,7 +102,7 @@ public class Application {
*/
public Map<Zone, Deployment> productionDeployments() {
return deployments.values().stream()
- .filter(deployment -> deployment.zone().environment() == Environment.prod)
+ .filter(deployment -> deployment.zone().environment() == Environment.prod)
.collect(Collectors.toMap(Deployment::zone, Function.identity()));
}
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 8d0cdc1d041..1bb78078cd5 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
@@ -481,7 +481,7 @@ public class ApplicationController {
try (Lock lock = lock(id)) {
Optional<Application> application = get(id);
if ( ! application.isPresent()) return null;
- if ( ! application.get().productionDeployments().isEmpty())
+ if ( ! application.get().deployments().isEmpty())
throw new IllegalArgumentException("Could not delete '" + application + "': It has active deployments");
Tenant tenant = controller.tenants().tenant(new TenantId(id.tenant().value())).get();
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java
index 947e119fbd4..cbcea4775b4 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AsyncInitializationPolicy.java
@@ -1,14 +1,18 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.documentapi.messagebus.protocol;
+import com.yahoo.log.LogLevel;
import com.yahoo.messagebus.*;
import com.yahoo.messagebus.metrics.MetricSet;
import com.yahoo.messagebus.routing.RoutingContext;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.logging.Logger;
/**
* Abstract class for routing policies that need asynchronous initialization.
@@ -24,6 +28,8 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti
DONE
};
+ private static final Logger log = Logger.getLogger(AsyncInitializationPolicy.class.getName());
+
InitState initState;
ScheduledThreadPoolExecutor executor;
Exception initException;
@@ -78,7 +84,7 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti
synchronized (this) {
if (initException != null) {
Reply reply = new EmptyReply();
- reply.addError(new com.yahoo.messagebus.Error(ErrorCode.POLICY_ERROR, initException.getMessage()));
+ reply.addError(new com.yahoo.messagebus.Error(ErrorCode.POLICY_ERROR, "Policy threw exception during init:" + exceptionMessageWithTrace(initException)));
routingContext.setReply(reply);
return;
}
@@ -100,6 +106,7 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti
try {
init();
} catch (Exception e) {
+ log.log(LogLevel.WARNING,"Init threw exception",e);
initException = e;
}
@@ -115,4 +122,18 @@ public abstract class AsyncInitializationPolicy implements DocumentProtocolRouti
executor.shutdownNow();
}
}
+
+
+ private static String exceptionMessageWithTrace(Exception e) {
+ StringWriter sw = new StringWriter();
+ try (PrintWriter pw = new PrintWriter(sw)) {
+ e.printStackTrace(pw);
+ pw.flush();
+ }
+ return sw.toString();
+
+ }
+
+
+
}