Known issues

This page collects information about issues other than those listed as separate pages in the Troubleshooting tree.

For additional clarification or help, contact Magnolia support.

Issues caused by modules removed in Magnolia 6.3

  • If you are using rest-tools

    2024-10-07 04:21:03,057 SEVERE org.apache.catalina.core.StandardWrapperValve invoke Servlet.service() for servlet [default] in context with path [] threw exception
    2024-10-07 04:21:07,550 ERROR info.magnolia.module.cache.filter.CacheFilter     : A request started to cache but failed with an exception (NullPointerException: Cannot invoke "javax.servlet.Servlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)" because "this.servlet" is null). [url=http://localhost:8080/.rest/status]

    Solution

    Under /server/filters/servlets/RestDispatcherServlet, change the value of the servletClass property from info.magnolia.rest.tools.SwaggerRestDispatcherServlet to info.magnolia.rest.RestDispatcherServlet.

    Either write an uninstall task handler or in the rescue mode (Groovy app), trigger a groovy script (see below) to clean up the configs.

  • magnolia-module-rssaggregator removed

    Solution

    Either write an uninstall task handler or trigger the groovy script to remove /server/filters/servlets/FeedSyndicationServlet.

  • magnolia-dam-app-compatibility removed

    2024-10-08 04:10:13,836 WARN  agnolia.transformer.ClassPropertyBasedTypeResolver: Encountered the 'class' property but failed to resolved the type from its value: [info.magnolia.dam.app.ui.field.definition.DamUploadFieldDefinition]
    2024-10-08T02:10:13.841654941Z java.lang.ClassNotFoundException: info.magnolia.dam.app.ui.field.definition.DamUploadFieldDefinition

    Solution

    Either write an uninstall task handler or trigger the groovy script (see below) to clean up the configs.

  • magnolia-ldap removed removed

    2024-10-07 08:06:13,278 WARN  agnolia.transformer.ClassPropertyBasedTypeResolver: Encountered the 'class' property but failed to resolved the type from its value: [info.magnolia.jaas.sp.ldap.LDAPUserManager]

    Solution

    Either write an uninstall task handler or trigger the groovy script (see below) to clean up the configs.

Example Groovy script to clean up module configs

import info.magnolia.objectfactory.Components
import info.magnolia.cms.security.SecuritySupport;

// remove modules
modules = ["slack-integration", "pages", "workflow-compatibility", "magnolia-now-ldap-integration",
           "magnolia-now-configuration", "magnolia-now-sample", "workflow-extended-toolbox", "healthcheck", "dam-app"]

modules.each{ name ->
    removeModuleConfig(name)
}

// remove workflow commands
remove("/server/filters/servlets/HealthCheckServlet")
remove("/server/filters/servlets/FeedSyndicationServlet")


// modify config
modifyProperty("/server/filters/servlets/RestDispatcherServlet", "servletClass", "info.magnolia.rest.tools.SwaggerRestDispatcherServlet", "info.magnolia.rest.RestDispatcherServlet")
modifyProperty("/modules/workflow-jbpm/tasks/publish", "parameterResolver", "info.magnolia.workflow.extended.toolbox.jbpm.humantask.DynamicPublicationTaskParameterResolver", "info.magnolia.module.workflow.jbpm.humantask.parameter.PublicationTaskParameterResolver")
// save config changes
ctx.getJCRSession("config").save();


// remove permissions
//roleManager = Components.getComponent(SecuritySupport.class).getRoleManager()
//role = roleManager.getRole("rest-anonymous")
//roleManager.removePermission(role, "uri", "/.rest/v1*", 63)


def removeModuleConfig(String moduleName) {
    String path = "/modules/" + moduleName
    remove(path)
}

def remove(String path) {
    session = ctx.getJCRSession("config")
    if (session.itemExists(path)) {
        session.getNode(path).remove()
    }
}

def removeIfEmpty(String path) {
    session = ctx.getJCRSession("config")
    if (session.itemExists(path)) {
        node = session.getNode(path)
        if (!node.hasNodes()) {
            node.remove()
        }
    }
}

def removeIfValue(String path, String property, String value) {
    session = ctx.getJCRSession("config")
    if (session.itemExists(path)) {
        node = session.getNode(path)
        if (!node.hasProperty(property) || value.equals(node.getProperty(property).getString())) {
            node.remove()
        }
    }
}

def modifyProperty(String path, String property, String oldValue, String newValue) {
    session = ctx.getJCRSession("config")
    if (session.itemExists(path)) {
        node = session.getNode(path)
        if (node.hasProperty(property) && oldValue.equals(node.getProperty(property).getString())) {
            node.setProperty(property, newValue)
        }
    }
}

Example VersionHandler

register(DeltaBuilder.update("1.7", "").addTasks(updateTo_1_7()));

  private List<Task> updateTo_1_7() {
        ArrayList<Task> tasks = new ArrayList<>();
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - slack-integration", "/modules/slack-integration"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - pages", "/modules/pages"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - workflow-compatibility", "/modules/workflow-compatibility"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - magnolia-now-ldap-integration", "/modules/magnolia-now-ldap-integration"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - magnolia-now-configuration", "/modules/magnolia-now-configuration"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - magnolia-now-sample", "/modules/magnolia-now-sample"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - workflow-extended-toolbox", "/modules/workflow-extended-toolbox"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - healthcheck", "/modules/healthcheck"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - dam-app", "/modules/dam-app"));
        tasks.add(new RemoveNodeTask("Remove modules in configs for 6.3 - ldap", "/modules/ldap"));

        tasks.add(new RemoveNodeTask("Remove the configs for 6.3 - /server/filters/servlets/HealthCheckServlet", "/server/filters/servlets/HealthCheckServlet"));
        tasks.add(new RemoveNodeTask("Remove the configs for 6.3 - /server/filters/servlets/FeedSyndicationServlet", "/server/filters/servlets/FeedSyndicationServlet"));
        tasks.add(new RemoveNodeTask("Remove the configs for 6.3 - /server/security/userManagers/external", "/server/security/userManagers/external"));

        tasks.add(new CheckAndModifyPropertyValueTask("/server/filters/servlets/RestDispatcherServlet", "servletClass", "info.magnolia.rest.tools.SwaggerRestDispatcherServlet", "info.magnolia.rest.RestDispatcherServlet"));
        tasks.add(new CheckAndModifyPropertyValueTask("/modules/workflow-jbpm/tasks/publish", "parameterResolver", "info.magnolia.workflow.extended.toolbox.jbpm.humantask.DynamicPublicationTaskParameterResolver", "info.magnolia.module.workflow.jbpm.humantask.parameter.PublicationTaskParameterResolver"));
        return tasks;
    }
Feedback

DX Core

×

Location

This widget lets you know where you are on the docs site.

You are currently perusing through the DX Core docs.

Main doc sections

DX Core Headless PaaS Legacy Cloud Incubator modules