diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-03-05 12:11:27 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-03-05 12:29:47 +0000 |
commit | 62255c2bf7a52c493a59d3460477edfff0ab0673 (patch) | |
tree | 882422c0c00a1444dd8e37a34a7464daf3ea4dce /config | |
parent | 64e625da1dc69990be8a460764e9a07c4ca58af2 (diff) |
Update generation, but clear config on bad config.
Diffstat (limited to 'config')
-rw-r--r-- | config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java index 9ae3e226d89..3eea87ab5ba 100644 --- a/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java +++ b/config/src/main/java/com/yahoo/config/subscription/impl/JRTConfigSubscription.java @@ -95,7 +95,17 @@ public class JRTConfigSubscription<T extends ConfigInstance> extends ConfigSubsc } protected void setNewConfig(JRTClientConfigRequest jrtReq) { - setConfig(jrtReq.getNewGeneration(), toConfigInstance(jrtReq) ); + Exception badConfigE = null; + T configInstance = null; + try { + configInstance = toConfigInstance(jrtReq); + } catch (IllegalArgumentException e) { + badConfigE = e; + } + setConfig(jrtReq.getNewGeneration(), configInstance); + if (badConfigE != null) { + throw new IllegalArgumentException("Bad config from jrt", badConfigE); + } } /** @@ -106,7 +116,7 @@ public class JRTConfigSubscription<T extends ConfigInstance> extends ConfigSubsc * @param jrtRequest a config request * @return an instance of a config class (subclass of ConfigInstance) */ - T toConfigInstance(JRTClientConfigRequest jrtRequest) { + private T toConfigInstance(JRTClientConfigRequest jrtRequest) { Payload payload = jrtRequest.getNewPayload(); ConfigPayload configPayload = ConfigPayload.fromUtf8Array(payload.withCompression(CompressionType.UNCOMPRESSED).getData()); T configInstance = configPayload.toInstance(configClass, jrtRequest.getConfigKey().getConfigId()); |