summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-02-16 13:10:15 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2018-02-16 13:10:15 +0100
commit7a2d217d927712190fc2be1cdb42c7d6d6758791 (patch)
tree227cdde0a235bf2fddbfdeed5d8e4656d671e680 /config
parent00e18dfc7d727e322004cc6030cbe04d8d1995bd (diff)
Do not inc gen on forced reload.
Diffstat (limited to 'config')
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/ConfigSubscription.java15
-rw-r--r--config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java3
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java4
3 files changed, 10 insertions, 12 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 446630d41c3..02c455bf1c3 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
@@ -46,16 +46,10 @@ public abstract class ConfigSubscription<T extends ConfigInstance> {
this.generation = generation;
}
private ConfigState(Long generation, T config) {
- configChanged = false;
- generationChanged = false;
- this.generation = generation;
- this.config = config;
+ this(false, generation,false, config);
}
private ConfigState() {
- generation = 0L;
- config = null;
- configChanged = false;
- generationChanged = false;
+ this(false, 0L, false, null);
}
private ConfigState<T> createUnchanged() { return new ConfigState<T>(generation, config); }
public boolean isConfigChanged() { return configChanged; }
@@ -189,6 +183,11 @@ public abstract class ConfigSubscription<T extends ConfigInstance> {
this.config.set(new ConfigState<>(true, prev.getGeneration() + 1,
!config.equals(prev.getConfig()), config));
}
+ protected void setConfigIfChanged(T config) {
+ ConfigState<T> prev = this.config.get();
+ this.config.set(new ConfigState<>(true, prev.getGeneration(),
+ !config.equals(prev.getConfig()), config));
+ }
void setGeneration(Long generation) {
ConfigState<T> c = config.get();
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
index 43c5e9a87f8..8c3f87d0702 100644
--- a/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
+++ b/config/src/main/java/com/yahoo/config/subscription/impl/FileConfigSubscription.java
@@ -40,8 +40,7 @@ public class FileConfigSubscription<T extends ConfigInstance> extends ConfigSubs
if (checkReloaded()) {
log.log(LogLevel.DEBUG, "User forced config reload at " + System.currentTimeMillis());
// User forced reload
- T newConfig = updateConfig();
- setConfigIfChangedIncGen(updateConfig());
+ setConfigIfChanged(updateConfig());
ConfigState<T> configState = getConfigState();
log.log(LogLevel.DEBUG, "Config updated at " + System.currentTimeMillis() + ", changed: " + configState.isConfigChanged());
log.log(LogLevel.DEBUG, "Config: " + configState.getConfig().toString());
diff --git a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
index 561bdb1f4d4..8fdd9d5e3b3 100644
--- a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
@@ -79,7 +79,7 @@ public class FileConfigSubscriptionTest {
assertSame(configState, sub.getConfigState());
assertTrue(configState.isConfigChanged());
assertTrue(configState.isGenerationChanged());
- assertTrue(sub.isConfigChangedAndReset(2L));
+ assertTrue(sub.isConfigChangedAndReset(1L));
assertNotSame(configState, sub.getConfigState());
configState = sub.getConfigState();
assertFalse(configState.isConfigChanged());
@@ -92,7 +92,7 @@ public class FileConfigSubscriptionTest {
assertFalse(configState.isConfigChanged());
assertTrue(configState.isGenerationChanged());
- assertFalse(sub.isConfigChangedAndReset(3L));
+ assertFalse(sub.isConfigChangedAndReset(2L));
assertNotSame(configState, sub.getConfigState());
configState = sub.getConfigState();
assertFalse(configState.isConfigChanged());