aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp5
-rw-r--r--searchcore/src/apps/vespa-proton-cmd/vespa-proton-cmd.cpp4
-rw-r--r--slobrok/src/vespa/slobrok/cfg.cpp1
-rw-r--r--slobrok/src/vespa/slobrok/sbmirror.cpp5
4 files changed, 11 insertions, 4 deletions
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
index 9eb28432234..d12a46ed3a4 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.cpp
@@ -55,10 +55,11 @@ ExternSlobrokPolicy::~ExternSlobrokPolicy()
}
}
-string ExternSlobrokPolicy::init() {
+string
+ExternSlobrokPolicy::init() {
if (_slobroks.size() != 0) {
slobrok::ConfiguratorFactory config(_slobroks);
- _mirror.reset(new MirrorAPI(*_orb, config));
+ _mirror = std::make_unique<MirrorAPI>(*_orb, config);
} else if (_configSources.size() != 0) {
slobrok::ConfiguratorFactory config(
config::ConfigUri(_slobrokConfigId,
diff --git a/searchcore/src/apps/vespa-proton-cmd/vespa-proton-cmd.cpp b/searchcore/src/apps/vespa-proton-cmd/vespa-proton-cmd.cpp
index 8b6203c78a2..50a2aecce76 100644
--- a/searchcore/src/apps/vespa-proton-cmd/vespa-proton-cmd.cpp
+++ b/searchcore/src/apps/vespa-proton-cmd/vespa-proton-cmd.cpp
@@ -3,6 +3,7 @@
#include <vespa/slobrok/sbmirror.h>
#include <vespa/config/common/configsystem.h>
#include <vespa/config/common/exceptions.h>
+#include <vespa/vespalib/util/exceptions.h>
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/target.h>
#include <vespa/vespalib/util/host_name.h>
@@ -158,6 +159,9 @@ public:
} catch (config::InvalidConfigException& e) {
fprintf(stderr, "ERROR: failed to get service location broker configuration\n");
std::_Exit(1);
+ } catch (vespalib::IllegalStateException& e) {
+ fprintf(stderr, "ERROR: empty or invalid service location broker configuration: %s\n", e.what());
+ std::_Exit(2);
}
return "";
}
diff --git a/slobrok/src/vespa/slobrok/cfg.cpp b/slobrok/src/vespa/slobrok/cfg.cpp
index 03b2b12803e..01da82b41c1 100644
--- a/slobrok/src/vespa/slobrok/cfg.cpp
+++ b/slobrok/src/vespa/slobrok/cfg.cpp
@@ -34,7 +34,6 @@ Configurator::Configurator(Configurable& target, const config::ConfigUri & uri)
: _subscriber(uri.getContext()),
_handle(_subscriber.subscribe<cloud::config::SlobroksConfig>(uri.getConfigId())),
_target(target)
-
{
}
diff --git a/slobrok/src/vespa/slobrok/sbmirror.cpp b/slobrok/src/vespa/slobrok/sbmirror.cpp
index 6aff47e13fd..13680d16e68 100644
--- a/slobrok/src/vespa/slobrok/sbmirror.cpp
+++ b/slobrok/src/vespa/slobrok/sbmirror.cpp
@@ -3,6 +3,7 @@
#include "sbmirror.h"
#include <vespa/fnet/frt/supervisor.h>
#include <vespa/fnet/frt/target.h>
+#include <vespa/vespalib/util/exceptions.h>
#include <vespa/log/log.h>
LOG_SETUP(".slobrok.mirror");
@@ -30,7 +31,9 @@ MirrorAPI::MirrorAPI(FRT_Supervisor &orb, const ConfiguratorFactory & config)
_req(0)
{
_configurator->poll();
- LOG_ASSERT(_slobrokSpecs.ok());
+ if (!_slobrokSpecs.ok()) {
+ throw vespalib::IllegalStateException("Not able to initialize MirrorAPI due to missing or bad slobrok specs");
+ }
ScheduleNow();
}