-
Bug
-
Resolution: Fixed
-
Neutral
-
6.2.7
-
None
-
Empty show more show less
-
DevX 1, DevX 2
-
3
Magnolia will throw a NullPointerException on startup, when LightModuleDefinitionReader or BetwixtModuleDefinitionReader fail to parsed a module version.
Steps to reproduce
- Set a version property in a module descriptor (lightmodule/xml) with 1.0.UNKNOWN
- 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