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

Magnolia will not start when module version in descriptor could not be parsed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Neutral Neutral
    • 6.2.17
    • 6.2.7
    • None

      Magnolia will throw a NullPointerException on startup, when LightModuleDefinitionReader or BetwixtModuleDefinitionReader fail to parsed a module version.

      Steps to reproduce

      1.  Set a version property in a module descriptor (lightmodule/xml) with 1.0.UNKNOWN
      2.  Start Magnolia
      ERROR info.magnolia.init.MagnoliaServletContextListener : Oops, Magnolia could not be started
        at info.magnolia.objectfactory.configuration.ComponentProviderConfigurationBuilder.getComponentsFromModules(ComponentProviderConfigurationBuilder.java:78)
      java.lang.NullPointerException: null
        at info.magnolia.init.MagnoliaServletContextListener.getSystemComponents(MagnoliaServletContextListener.java:252)
        at info.magnolia.objectfactory.configuration.ComponentProviderConfigurationBuilder.getComponentsFromModules(ComponentProviderConfigurationBuilder.java:78) ~[magnolia-core-6.2.7.jar:?]
        at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:165)
        at info.magnolia.init.MagnoliaServletContextListener.getSystemComponents(MagnoliaServletContextListener.java:252) ~[magnolia-core-6.2.7.jar:?]
        at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:128)
        at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:165) [magnolia-core-6.2.7.jar:?]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812)
        at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:128) [magnolia-core-6.2.7.jar:?]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) [catalina.jar:8.5.37]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5278)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5278) [catalina.jar:8.5.37]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [catalina.jar:8.5.37]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754) [catalina.jar:8.5.37]
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730) [catalina.jar:8.5.37]
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) [catalina.jar:8.5.37]
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140) [catalina.jar:8.5.37]
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875) [catalina.jar:8.5.37]
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
      

      In order to prevent this

      • the DefinitionReaders should discard the modules from initializing by throwing an exception
      • the log statement in info.magnolia.objectfactory.configuration.ComponentProviderConfigurationBuilder#getComponentsFromModules:78 should be guarded

        Acceptance criteria

              dai.ha Dai Ha
              philipp.guettler@aperto.de zzz_Philipp Güttler
              DeveloperX
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - Not Specified
                    Not Specified
                    Logged:
                    Time Spent - 0.5d
                    0.5d