Skip to content

Commit 9d09df7

Browse files
committed
making getEffectiveSettings more robust
1 parent 0fda41e commit 9d09df7

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

server/src/main/java/org/elasticsearch/cluster/metadata/DataStream.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,16 +398,25 @@ public static ComposableIndexTemplate mergeSettingsIntoTemplate(ComposableIndexT
398398
return template;
399399
}
400400
ComposableIndexTemplate.Builder mergedIndexTemplateBuilder = template.toBuilder();
401-
assert template.template() != null : "Template is unexpectedly null";
402-
Template.Builder mergedTemplateBuilder = Template.builder(template.template());
403-
mergedTemplateBuilder.settings(mergeSettings(template.template().settings(), settings));
401+
Template.Builder mergedTemplateBuilder;
402+
Settings templateSettings;
403+
if (template.template() == null) {
404+
mergedTemplateBuilder = Template.builder();
405+
templateSettings = null;
406+
} else {
407+
mergedTemplateBuilder = Template.builder(template.template());
408+
templateSettings = template.template().settings();
409+
}
410+
mergedTemplateBuilder.settings(mergeSettings(templateSettings, settings));
404411
mergedIndexTemplateBuilder.template(mergedTemplateBuilder);
405412
return mergedIndexTemplateBuilder.build();
406413
}
407414

408415
private static Settings mergeSettings(Settings originalSettings, Settings newSettings) {
409-
if (Settings.EMPTY.equals(newSettings)) {
416+
if (newSettings == null || Settings.EMPTY.equals(newSettings)) {
410417
return Objects.requireNonNullElse(originalSettings, Settings.EMPTY);
418+
} else if (originalSettings == null || Settings.EMPTY.equals(originalSettings)) {
419+
return newSettings;
411420
}
412421
Settings.Builder settingsBuilder = Settings.builder().put(originalSettings).put(newSettings);
413422
for (String settingName : new HashSet<>(settingsBuilder.keys())) {

0 commit comments

Comments
 (0)