diff options
author | Harald Musum <musum@yahooinc.com> | 2021-11-10 15:45:36 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2021-11-10 15:45:36 +0100 |
commit | 1de91204a31690e16d150b26150d67eb240f94a1 (patch) | |
tree | c810c6a863ea4e20427edbb344ccce975b90f780 /config | |
parent | 7b8ff1e3984f59fe90b7db8cac3c85e9c6fc34a5 (diff) |
Use Objects.equals for comparison and log if config changed unexpectedly
Diffstat (limited to 'config')
-rw-r--r-- | config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java index d1eab1e1ff1..ab72ac2b9b2 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java @@ -16,7 +16,9 @@ import com.yahoo.vespa.config.TimingValues; import com.yahoo.vespa.config.protocol.DefContent; import java.io.File; +import java.util.Objects; import java.util.concurrent.atomic.AtomicReference; +import java.util.logging.Level; import java.util.logging.Logger; import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5; @@ -205,7 +207,14 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { void setConfigAndGeneration(Long generation, boolean applyOnRestart, T config, PayloadChecksums payloadChecksums) { ConfigState<T> prev = this.config.get(); - this.config.set(new ConfigState<>(true, generation, applyOnRestart, !config.equals(prev.getConfig()), config, payloadChecksums)); + boolean configChanged = !Objects.equals(prev.getConfig(), config); + String message = "Config has changed unexpectedly for " + key + ", generation " + generation; + if (configChanged) { + if (log.isLoggable(Level.FINE)) + message = message + ", config in state :" + prev.toString() + ", new config: " + config; + log.log(Level.WARNING, message); + } + this.config.set(new ConfigState<>(true, generation, applyOnRestart, configChanged, config, payloadChecksums)); } /** @@ -218,7 +227,7 @@ public abstract class ConfigSubscription<T extends ConfigInstance> { protected void setConfigIfChanged(T config) { ConfigState<T> prev = this.config.get(); - this.config.set(new ConfigState<>(true, prev.getGeneration(), prev.applyOnRestart(), !config.equals(prev.getConfig()), config, prev.payloadChecksums)); + this.config.set(new ConfigState<>(true, prev.getGeneration(), prev.applyOnRestart(), !Objects.equals(prev.getConfig(), config), config, prev.payloadChecksums)); } void setGeneration(Long generation) { |