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 theservletClass
property frominfo.magnolia.rest.tools.SwaggerRestDispatcherServlet
toinfo.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
removedSolution
Either write an uninstall task handler or trigger the groovy script to remove
/server/filters/servlets/FeedSyndicationServlet
. -
magnolia-dam-app-compatibility
removed2024-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
removed2024-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;
}
Other issues
-
Ant: Malformed \uxxxx encoding in a propertyfile task (Backup module)
-
Cannot upgrade to 6.3 from 6.2 with the existing 6.2 license
-
MgnlContext is not set for this thread (Cache Browser app)
-
Missing CountryVoter (Personalization module)
-
Missing VerticalFormLayoutDefinition (Marketing Automation module)
-
Password module dependency (Marketing Automation module)
-
Lazy component loading not working with Angular v17+ SSG (Angular Editor)