diff --git a/server/src/main/java/com/cloud/storage/download/DownloadListener.java b/server/src/main/java/com/cloud/storage/download/DownloadListener.java index 9d094fd145a..6bf63404bfa 100644 --- a/server/src/main/java/com/cloud/storage/download/DownloadListener.java +++ b/server/src/main/java/com/cloud/storage/download/DownloadListener.java @@ -140,6 +140,13 @@ public class DownloadListener implements Listener { private Cache> zoneHypervisorsCache; + protected void initZoneHypervisorsCache() { + zoneHypervisorsCache = Caffeine.newBuilder() + .maximumSize(32) + .expireAfterWrite(30, TimeUnit.SECONDS) + .build(); + } + // TODO: this constructor should be the one used for template only, remove other template constructor later public DownloadListener(EndPoint ssAgent, DataStore store, DataObject object, Timer timer, DownloadMonitorImpl downloadMonitor, DownloadCommand cmd, AsyncCompletionCallback callback) { @@ -155,12 +162,12 @@ public class DownloadListener implements Listener { _callback = callback; DownloadAnswer answer = new DownloadAnswer("", Status.NOT_DOWNLOADED); callback(answer); + initZoneHypervisorsCache(); + } - zoneHypervisorsCache = Caffeine.newBuilder() - .maximumSize(512) - .expireAfterWrite(30, TimeUnit.SECONDS) - .build(); - + public DownloadListener(DownloadMonitorImpl monitor) { + _downloadMonitor = monitor; + initZoneHypervisorsCache(); } public AsyncCompletionCallback getCallback() { @@ -218,10 +225,6 @@ public class DownloadListener implements Listener { s_logger.log(level, message + ", " + object.getType() + ": " + object.getId() + " at host " + _ssAgent.getId()); } - public DownloadListener(DownloadMonitorImpl monitor) { - _downloadMonitor = monitor; - } - @Override public boolean isRecurring() { return false;