diff options
Diffstat (limited to 'service-monitor')
-rw-r--r-- | service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java | 14 | ||||
-rw-r--r-- | service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java | 4 |
2 files changed, 12 insertions, 6 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java b/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java index 62f39084272..976aab7f732 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/slobrok/SlobrokMonitor.java @@ -12,7 +12,6 @@ import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.jrt.slobrok.api.SlobrokList; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -25,19 +24,21 @@ public class SlobrokMonitor implements AutoCloseable { private final SlobrokList slobrokList; private final Mirror mirror; + private final Transport transport; SlobrokMonitor() { - this(new SlobrokList()); + this(new SlobrokList(), new Transport("slobrok-monitor")); } // Package-private for testing. - SlobrokMonitor(SlobrokList slobrokList, Mirror mirror) { + SlobrokMonitor(SlobrokList slobrokList, Mirror mirror, Transport transport) { this.slobrokList = slobrokList; this.mirror = mirror; + this.transport = transport; } - private SlobrokMonitor(SlobrokList slobrokList) { - this(slobrokList, new Mirror(new Supervisor(new Transport("slobrok-monitor")), slobrokList)); + private SlobrokMonitor(SlobrokList slobrokList, Transport transport) { + this(slobrokList, new Mirror(new Supervisor(transport), slobrokList), transport); } void updateSlobrokList(ApplicationInfo application) { @@ -73,6 +74,9 @@ public class SlobrokMonitor implements AutoCloseable { @Override public void close() { mirror.shutdown(); + transport.sync() // Wait for mirror shutdown. + .shutdown() // Signal shutdown of transport threads. + .join(); // Wait for shutdown of transport threads. } boolean registeredInSlobrok(String slobrokServiceName) { diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java index 8bec3bf6cd8..3297823a0be 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/slobrok/SlobrokMonitorTest.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.service.slobrok; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; +import com.yahoo.jrt.Transport; import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.jrt.slobrok.api.SlobrokList; import com.yahoo.vespa.service.model.ExampleModel; @@ -14,7 +15,8 @@ import static org.mockito.Mockito.verify; public class SlobrokMonitorTest { private final SlobrokList slobrokList = mock(SlobrokList.class); private final Mirror mirror = mock(Mirror.class); - private SlobrokMonitor slobrokMonitor = new SlobrokMonitor(slobrokList, mirror); + private final Transport transport = mock(Transport.class); + private final SlobrokMonitor slobrokMonitor = new SlobrokMonitor(slobrokList, mirror, transport); @Test public void testUpdateSlobrokList() { |