diff options
Diffstat (limited to 'container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java')
-rw-r--r-- | container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java index cf80009f3f6..a7ff6c46a8b 100644 --- a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java +++ b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java @@ -46,10 +46,10 @@ public final class ConfigRetriever { } public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, - long leastGeneration) { + long leastGeneration, boolean isInitializing) { // Loop until we get config. while (true) { - Optional<ConfigSnapshot> maybeSnapshot = getConfigsOnce(componentConfigKeys, leastGeneration); + Optional<ConfigSnapshot> maybeSnapshot = getConfigsOnce(componentConfigKeys, leastGeneration, isInitializing); if (maybeSnapshot.isPresent()) { var configSnapshot = maybeSnapshot.get(); resetComponentSubscriberIfBootstrap(configSnapshot); @@ -59,7 +59,7 @@ public final class ConfigRetriever { } Optional<ConfigSnapshot> getConfigsOnce(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, - long leastGeneration) { + long leastGeneration, boolean isInitializing) { if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty()) { throw new IllegalArgumentException( "Component config keys [" + componentConfigKeys + "] overlaps with bootstrap config keys [" + bootstrapKeys + "]"); @@ -70,18 +70,18 @@ public final class ConfigRetriever { allKeys.addAll(bootstrapKeys); setupComponentSubscriber(allKeys); - return getConfigsOptional(leastGeneration); + return getConfigsOptional(leastGeneration, isInitializing); } - private Optional<ConfigSnapshot> getConfigsOptional(long leastGeneration) { - long newestComponentGeneration = componentSubscriber.waitNextGeneration(); + private Optional<ConfigSnapshot> getConfigsOptional(long leastGeneration, boolean isInitializing) { + long newestComponentGeneration = componentSubscriber.waitNextGeneration(isInitializing); log.log(FINE, "getConfigsOptional: new component generation: " + newestComponentGeneration); // leastGeneration is only used to ensure newer generation when the previous generation was invalidated due to an exception if (newestComponentGeneration < leastGeneration) { return Optional.empty(); } else if (bootstrapSubscriber.generation() < newestComponentGeneration) { - long newestBootstrapGeneration = bootstrapSubscriber.waitNextGeneration(); + long newestBootstrapGeneration = bootstrapSubscriber.waitNextGeneration(isInitializing); log.log(FINE, "getConfigsOptional: new bootstrap generation: " + bootstrapSubscriber.generation()); Optional<ConfigSnapshot> bootstrapConfig = bootstrapConfigIfChanged(); if (bootstrapConfig.isPresent()) { @@ -92,8 +92,8 @@ public final class ConfigRetriever { return componentsConfigIfChanged(); } else { // This should not be a normal case, and hence a warning to allow investigation. - log.warning("Did not get same generation for bootstrap (" + newestBootstrapGeneration + ") and components configs (" - + newestComponentGeneration + ")."); + log.warning("Did not get same generation for bootstrap (" + newestBootstrapGeneration + + ") and components configs (" + newestComponentGeneration + ")."); return Optional.empty(); } } |