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

Empty servlet mapping causes error upon installation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • 4.3.3, 4.4
    • None
    • None
    • ubuntu 8.04 x64, tomcat 5.5, java 1.5 x64

      If a servlet mapping is left empty:

      <mappings>
      <mapping></mapping>
      </mappings>

      There is a null error upon module installation via the web interface and installation does not complete. The error message is:

      ERROR info.magnolia.module.ui.ModuleManagerWebUI ModuleManagerWebUI.java(run:124) 28.11.2008 14:08:11 Could not perform installation: null
      java.lang.NullPointerException
      at java.lang.StringBuffer.<init>(StringBuffer.java:104)
      at info.magnolia.cms.core.Path.getValidatedLabel(Path.java:347)
      at info.magnolia.module.delta.RegisterServletTask.execute(RegisterServletTask.java:80)
      at info.magnolia.module.delta.ArrayDelegateTask.execute(ArrayDelegateTask.java:117)
      at info.magnolia.module.delta.RegisterModuleServletsTask.execute(RegisterModuleServletsTask.java:63)
      at info.magnolia.module.ModuleManagerImpl.applyDeltas(ModuleManagerImpl.java:455)
      at info.magnolia.module.ModuleManagerImpl.installOrUpdateModule(ModuleManagerImpl.java:435)
      at info.magnolia.module.ModuleManagerImpl$1.exec(ModuleManagerImpl.java:262)
      at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:411)
      at info.magnolia.module.ModuleManagerImpl.performInstallOrUpdate(ModuleManagerImpl.java:257)
      at info.magnolia.module.ui.ModuleManagerWebUI$2.run(ModuleManagerWebUI.java:122)
      at java.lang.Thread.run(Thread.java:595)
      ERROR info.magnolia.module.InstallContextImpl InstallContextImpl.java(error:83) 28.11.2008 14:08:11 > Could not perform installation: null
      java.lang.NullPointerException
      at java.lang.StringBuffer.<init>(StringBuffer.java:104)
      at info.magnolia.cms.core.Path.getValidatedLabel(Path.java:347)
      at info.magnolia.module.delta.RegisterServletTask.execute(RegisterServletTask.java:80)
      at info.magnolia.module.delta.ArrayDelegateTask.execute(ArrayDelegateTask.java:117)
      at info.magnolia.module.delta.RegisterModuleServletsTask.execute(RegisterModuleServletsTask.java:63)
      at info.magnolia.module.ModuleManagerImpl.applyDeltas(ModuleManagerImpl.java:455)
      at info.magnolia.module.ModuleManagerImpl.installOrUpdateModule(ModuleManagerImpl.java:435)
      at info.magnolia.module.ModuleManagerImpl$1.exec(ModuleManagerImpl.java:262)
      at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:411)
      at info.magnolia.module.ModuleManagerImpl.performInstallOrUpdate(ModuleManagerImpl.java:257)
      at info.magnolia.module.ui.ModuleManagerWebUI$2.run(ModuleManagerWebUI.java:122)
      at java.lang.Thread.run(Thread.java:595)

      One fix for this is to add a null check in the execute() method of info.magnolia.module.delta.RegisterServletTask:

      if (pattern != null)

      { String mappingNodeName = Path.getUniqueLabel(mappingsNode, Path.getValidatedLabel(pattern)); final Content mappingNode = mappingsNode.createContent(mappingNodeName, ItemType.CONTENTNODE); NodeDataUtil.getOrCreateAndSet(mappingNode, "pattern", pattern); }

        Acceptance criteria

              ochytil Ondrej Chytil
              bbowman Brian Bowman
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD