diff options
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionUtil.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionUtil.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionUtil.java index de3a2b47233..305bc71e66a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionUtil.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionUtil.java @@ -60,9 +60,16 @@ public class FileDistributionUtil { } private static class EmptyConnectionPool implements ConnectionPool { + private Supervisor supervisor; @Override - public void close() {} + public void close() { + synchronized (this) { + if (supervisor != null) { + supervisor.transport().shutdown().join(); + } + } + } @Override public void setError(Connection connection, int i) {} @@ -77,7 +84,14 @@ public class FileDistributionUtil { public int getSize() { return 0; } @Override - public Supervisor getSupervisor() { return new Supervisor(new Transport()); } + public Supervisor getSupervisor() { + synchronized (this) { + if (supervisor == null) { + supervisor = new Supervisor(new Transport()); + } + } + return supervisor; + } } } |