diff --git a/java/google/registry/config/YamlUtils.java b/java/google/registry/config/YamlUtils.java
index 05af37431..c2a64f60c 100644
--- a/java/google/registry/config/YamlUtils.java
+++ b/java/google/registry/config/YamlUtils.java
@@ -18,6 +18,7 @@ import static google.registry.config.RegistryEnvironment.UNITTEST;
import static google.registry.util.FormattingLogger.getLoggerForCallerClass;
import static google.registry.util.ResourceUtils.readResourceUtf8;
+import com.google.common.base.Optional;
import com.google.common.io.CharStreams;
import google.registry.util.FormattingLogger;
import java.io.File;
@@ -84,19 +85,30 @@ public final class YamlUtils {
*
Only maps are handled recursively; lists are simply overridden in place as-is.
*/
static String mergeYaml(String defaultYaml, String customYaml) {
+ Yaml yaml = new Yaml();
+ Map yamlMap = loadAsMap(yaml, defaultYaml).get();
try {
- Yaml yaml = new Yaml();
- Map defaultObj = loadAsMap(yaml, defaultYaml);
- Map customObj = loadAsMap(yaml, customYaml);
- Object mergedObj = mergeMaps(defaultObj, customObj);
- logger.infofmt("Successfully loaded custom YAML configuration file.");
- return yaml.dump(mergedObj);
+ Optional