diff --git a/mapping/artemis-configuration/src/main/java/org/jnosql/artemis/configuration/yaml/ConfigurableReaderYAML.java b/mapping/artemis-configuration/src/main/java/org/jnosql/artemis/configuration/yaml/ConfigurableReaderYAML.java index 04593bf8c..a3e971871 100644 --- a/mapping/artemis-configuration/src/main/java/org/jnosql/artemis/configuration/yaml/ConfigurableReaderYAML.java +++ b/mapping/artemis-configuration/src/main/java/org/jnosql/artemis/configuration/yaml/ConfigurableReaderYAML.java @@ -17,6 +17,7 @@ import org.jnosql.artemis.ConfigurationUnit; import org.jnosql.artemis.configuration.Configurable; import org.jnosql.artemis.configuration.ConfigurableReader; +import org.jnosql.artemis.configuration.ConfigurationException; import org.jnosql.artemis.configuration.DefaultConfigurable; import org.yaml.snakeyaml.Yaml; @@ -42,21 +43,25 @@ class ConfigurableReaderYAML implements ConfigurableReader { @Override public List read(Supplier stream, ConfigurationUnit annotation) { - List configurations = cache.get(annotation.fileName()); - - if (nonNull(configurations)) { + List cached = cache.get(annotation.fileName()); + if (nonNull(cached)) { LOGGER.info("Loading the configuration file from the cache file: " + annotation.fileName()); - return configurations; + return cached; } - Yaml yaml = new Yaml(); - Map config = yaml.load(stream.get()); - List> yamlConfigurations = (List>) config.get("configurations"); - List configurables = new ArrayList<>(); - for (Map configuration : yamlConfigurations) { - configurables.add(getConfigurable(configuration)); + + try { + Yaml yaml = new Yaml(); + Map config = yaml.load(stream.get()); + List> yamlConfigurations = (List>) config.get("configurations"); + List configurations = new ArrayList<>(); + for (Map configuration : yamlConfigurations) { + configurations.add(getConfigurable(configuration)); + } + cache.put(annotation.fileName(), configurations); + return configurations; + } catch (Exception exp) { + throw new ConfigurationException("Error to load Yaml file configuration", exp); } - cache.put(annotation.fileName(), configurables); - return configurables; } private Configurable getConfigurable(Map configuration) {