-
Bug
-
Resolution: Obsolete
-
Neutral
-
None
-
5.5.5
-
None
-
-
Empty show more show less
-
Kromeriz 132
-
3
If there is a parsing error, it causes the yaml parser to stop working entirely, until the node is restarted. Just redeploying corrected/new yaml is insufficient to get a node to work again, and on startup no yaml in any light module that would be processed after the failing one will get processed at all, which is rather fragile and will show up in the definitions app as unrelated broken definitions where some parts of a definition are available to the resources loader, while other includes aren't available in the resource loader, despite being available on the filesystem, due to the yaml parser crashing completely.
How to reproduce
Imagine that you have a light-module(my-module) that define an app(my-app), and you include a file to be included into my-app definition (/my-module/my-app/common-options.yaml):
- name: internalLink label: Internal link - name: externalLink label: External link - name: productLink label: Product link
It throwns an exception:
2017-08-15 17:23:31,680 | ERROR | localhost-startStop-1 | info.magnolia.module.ModuleManagerImpl | | Can't start module ui-framework java.lang.UnsupportedOperationException at com.google.common.collect.ImmutableMap.put(ImmutableMap.java:326) at info.magnolia.config.source.yaml.YamlDefinitionProvider.resolve(YamlDefinitionProvider.java:188) at info.magnolia.config.source.yaml.YamlDefinitionProvider.getDelegate(YamlDefinitionProvider.java:120) at info.magnolia.config.registry.AbstractDefinitionProviderWrapper.getMetadata(AbstractDefinitionProviderWrapper.java:56) at info.magnolia.config.registry.RegistryMap.asStringKey(RegistryMap.java:147) at info.magnolia.config.registry.RegistryMap.put(RegistryMap.java:94) at info.magnolia.config.registry.AbstractRegistry.register(AbstractRegistry.java:98) at info.magnolia.ui.api.app.registry.AppDescriptorRegistry.register(AppDescriptorRegistry.java:86) at info.magnolia.config.source.yaml.YamlConfigurationSource.loadAndRegister(YamlConfigurationSource.java:101) at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:253) at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:249) at info.magnolia.resourceloader.util.VoidFunction.apply(VoidFunction.java:49) at info.magnolia.resourceloader.util.VoidFunction.apply(VoidFunction.java:46) at info.magnolia.resourceloader.util.PredicatedResourceVisitor.visitFile(PredicatedResourceVisitor.java:120) at info.magnolia.resourceloader.util.ResourceTreeWalker.traverse(ResourceTreeWalker.java:61) at info.magnolia.resourceloader.util.ResourceTreeWalker.traverse(ResourceTreeWalker.java:57) at info.magnolia.resourceloader.util.ResourceTreeWalker.traverse(ResourceTreeWalker.java:57) at info.magnolia.resourceloader.util.ResourceTreeWalker.traverse(ResourceTreeWalker.java:57) at info.magnolia.resourceloader.util.ResourceTreeWalker.traverse(ResourceTreeWalker.java:57) at info.magnolia.resourceloader.AbstractResourceOrigin.traverseWith(AbstractResourceOrigin.java:80) at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource.start(AbstractFileResourceConfigurationSource.java:115) at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindTo(YamlConfigurationSourceBuilder.java:96) at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindWithDefaults(YamlConfigurationSourceBuilder.java:103) at info.magnolia.ui.framework.UiFrameworkModule.start(UiFrameworkModule.java:81) at info.magnolia.module.ModuleManagerImpl.startModule(ModuleManagerImpl.java:436) at info.magnolia.module.ModuleManagerImpl.startModules(ModuleManagerImpl.java:371) at info.magnolia.module.ui.ModuleManagerNullUI.onStartup(ModuleManagerNullUI.java:74) at info.magnolia.cms.beans.config.ConfigLoader.load(ConfigLoader.java:145) at info.magnolia.init.MagnoliaServletContextListener$1.doExec(MagnoliaServletContextListener.java:259) at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:429) at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:426) at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:400) at info.magnolia.init.MagnoliaServletContextListener.startServer(MagnoliaServletContextListener.java:256) at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:182) at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:128) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
- is related to
-
MAGNOLIA-6664 Inheritance of registry definitions from YAML
- Closed
-
MAGNOLIA-7060 Override properties in YAML include
- Closed