Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-7280

Empty property in yaml definition breaks whole definition indexing

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 5.6.3
    • 5.6.2
    • None
    • None
    • Basel 139
    • 2

      colored textIssue discovered in CLOUDHELP-66, we used to have yaml page templates with empty properties, by mistake, but it was working on 5.5.7. example of template:

      title: '_ HTML code [#dx #yaml]'
      renderType: freemarker
      templateScript: /dx/ftls/components/content/html.ftl
      dialog: dx:components/content/cHTML
      description:
      i18nBasename: info.magnolia.module.templatingkit.messages
      

      but after migration from 5.5.7 to 5.6.3 it breaks Magnolia - e.g. the whole process which observe filesystem for yaml definitions stop with error (see below), but even if you fix it or remove broken definition file Magnolia will NOT reindex until restart.

      2018-03-15 09:57:11,589 ERROR info.magnolia.module.ModuleManagerImpl            : Can't start module rendering
      java.lang.NullPointerException: null
      	at java.util.HashMap.merge(HashMap.java:1216) ~[?:1.8.0_65]
      	at java.util.stream.Collectors.lambda$toMap$173(Collectors.java:1320) ~[?:1.8.0_65]
      	at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) ~[?:1.8.0_65]
      	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_65]
      	at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[?:1.8.0_65]
      	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_65]
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_65]
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_65]
      	at info.magnolia.config.source.yaml.MetadataProcessor.filterMap(MetadataProcessor.java:72) ~[classes/:?]
      	at info.magnolia.config.source.yaml.MetadataProcessor.process(MetadataProcessor.java:63) ~[classes/:?]
      	at info.magnolia.config.source.yaml.YamlDefinitionProvider.resolve(YamlDefinitionProvider.java:187) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.YamlDefinitionProvider.getDelegate(YamlDefinitionProvider.java:129) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.registry.AbstractDefinitionProviderWrapper.getMetadata(AbstractDefinitionProviderWrapper.java:56) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.registry.AbstractDefinitionProviderWrapper.getMetadata(AbstractDefinitionProviderWrapper.java:56) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.registry.RegistryMap.asStringKey(RegistryMap.java:156) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.registry.RegistryMap.put(RegistryMap.java:96) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.registry.AbstractRegistry.register(AbstractRegistry.java:96) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.YamlConfigurationSource.loadAndRegister(YamlConfigurationSource.java:114) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:286) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:282) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.resourceloader.util.VoidFunction.apply(VoidFunction.java:49) ~[magnolia-resource-loader-5.6.2.jar:?]
      	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_65]
      	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_65]
      	at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:352) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_65]
      	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_65]
      	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_65]
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_65]
      	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_65]
      	at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource.start(AbstractFileResourceConfigurationSource.java:153) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindTo(YamlConfigurationSourceBuilder.java:107) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindWithDefaults(YamlConfigurationSourceBuilder.java:114) ~[magnolia-configuration-5.6.2.jar:?]
      	at info.magnolia.rendering.module.RenderingModule.start(RenderingModule.java:67) ~[magnolia-rendering-5.6.2.jar:?]
      	at info.magnolia.module.ModuleManagerImpl.startModule(ModuleManagerImpl.java:413) ~[magnolia-core-5.6.2.jar:?]
      	at info.magnolia.module.ModuleManagerImpl.startModules(ModuleManagerImpl.java:348) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.module.ui.ModuleManagerWebUI.onStartup(ModuleManagerWebUI.java:78) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.cms.beans.config.ConfigLoader.load(ConfigLoader.java:146) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.init.MagnoliaServletContextListener$1.doExec(MagnoliaServletContextListener.java:259) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:407) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:404) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:378) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.init.MagnoliaServletContextListener.startServer(MagnoliaServletContextListener.java:256) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:182) [magnolia-core-5.6.2.jar:?]
      	at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:128) [magnolia-core-5.6.2.jar:?]
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727) [catalina.jar:8.5.5]
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189) [catalina.jar:8.5.5]
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.5.5]
      	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724) [catalina.jar:8.5.5]
      	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700) [catalina.jar:8.5.5]
      	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) [catalina.jar:8.5.5]
      	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107) [catalina.jar:8.5.5]
      	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841) [catalina.jar:8.5.5]
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_65]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_65]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_65]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_65]
      	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
      

        Acceptance criteria

              ilgun Ilgun Ilgun
              tgregovsky Tomáš Gregovský
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD