@@ -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