Description:
When a user pauses their notifications in their user preferences, it becomes impossible to activate or deactivate workspace modules. Attempting to modify the module configuration results in a server error and the action fails.
Steps to Reproduce:
- Connect to the catalog.
- Ensure there is a workspace where the current user has manager rights.
- Go to User Preferences.
- Enable Pause Notifications.

- Return to the aforementioned workspace configuration.
- Try to activate or deactivate a module (e.g., Wall Content).

Current Behaviour:
The operation fails and an error is returned.
Error Log:
37 message(s) affiché(s) Date : 12/03 14:32:31.073 Thread : Thread[#3302,http-nio-8080-exec-37,5,main] Niveau : ERROR Catégorie : sitemap URI de la requête : /generate/catalogue/_plugins/cms/servercomm/fo-messages.xml Message : Can not dispatch request '0' : 'core-ui' 'client-call' '{role=org.ametys.plugins.workspaces.project.ProjectsCatalogueManager, methodName=editProject, parameters=[zoneItem://XXXXXXXXXXXXXXX, project://XXXXXXXXXXXXXXX, Test, , true, TEST, [], 1, null, [XXXXXXXX#utilisateurs, XXXXXXXXXXXX#utilisateurs], [org.ametys.plugins.workspaces.threads.ThreadWorkspaceModule, org.ametys.plugins.workspaces.calendars.CalendarWorkspaceModule, org.ametys.plugins.workspaces.documents.DocumentWorkspaceModule, org.ametys.plugins.workspaces.tasks.TasksWorkspaceModule, org.ametys.plugins.workspaces.news.NewsWorkspaceModule, org.ametys.plugins.workspaces.alert.AlertWorkspaceModule, org.ametys.plugins.workspaces.members.MembersWorkspaceModule, org.ametys.plugins.workspaces.about.AboutWorkspaceModule, org.ametys.plugins.workspaces.minisite.MiniSiteWorkspaceModule, org.ametys.plugins.workspaces.forum.ForumWorkspaceModule]]}' Emplacement : org.apache.cocoon.util.log.SLF4JLoggerAdapter.error(SLF4JLoggerAdapter.java:46) Pile d'appels : org.apache.cocoon.util.location.LocatedException: Can not dispatch request '0' : 'core-ui' 'client-call' '{role=org.ametys.plugins.workspaces.project.ProjectsCatalogueManager, methodName=editProject, parameters=[zoneItem://XXXXX, project://XXXXXXXXXX, Test, , true, TEST, [], 1, null, [XXXXXXXXXXXX#utilisateurs, XXXX#utilisateurs], [org.ametys.plugins.workspaces.threads.ThreadWorkspaceModule, org.ametys.plugins.workspaces.calendars.CalendarWorkspaceModule, org.ametys.plugins.workspaces.documents.DocumentWorkspaceModule, org.ametys.plugins.workspaces.tasks.TasksWorkspaceModule, org.ametys.plugins.workspaces.news.NewsWorkspaceModule, org.ametys.plugins.workspaces.alert.AlertWorkspaceModule, org.ametys.plugins.workspaces.members.MembersWorkspaceModule, org.ametys.plugins.workspaces.about.AboutWorkspaceModule, org.ametys.plugins.workspaces.minisite.MiniSiteWorkspaceModule, org.ametys.plugins.workspaces.forum.ForumWorkspaceModule]]}' at org.ametys.core.ui.dispatcher.DispatchGenerator#_handleError:314 at org.ametys.core.ui.dispatcher.DispatchGenerator#_dispatchingSubRequest:227 at org.ametys.cms.fo.FODispatchGenerator#_dispatching:54 at org.ametys.core.ui.dispatcher.DispatchGenerator#generate:93 at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline#processXMLPipeline:581 at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline#processXMLPipeline:301 at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline#process:483 at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode#invoke:144 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:178 at org.apache.cocoon.components.treeprocessor.TreeProcessor#process:254 at org.apache.cocoon.components.treeprocessor.sitemap.MountNode#invoke:118 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#handleCocoonRedirect:300 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#access$000:49 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor$TreeProcessorRedirector#cocoonRedirect:348 at org.apache.cocoon.environment.ForwardRedirector#redirect:60 at org.apache.cocoon.components.treeprocessor.sitemap.RedirectToURINode#invoke:70 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:178 at org.apache.cocoon.components.treeprocessor.TreeProcessor#process:254 at org.apache.cocoon.components.treeprocessor.sitemap.MountNode#invoke:118 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#handleCocoonRedirect:300 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#access$000:49 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor$TreeProcessorRedirector#cocoonRedirect:348 at org.apache.cocoon.environment.ForwardRedirector#redirect:60 at org.apache.cocoon.components.treeprocessor.sitemap.RedirectToURINode#invoke:70 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:178 at org.apache.cocoon.components.treeprocessor.TreeProcessor#process:254 at org.apache.cocoon.components.treeprocessor.sitemap.MountNode#invoke:118 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:178 at org.apache.cocoon.components.treeprocessor.TreeProcessor#process:254 at org.apache.cocoon.Cocoon#process:699 at org.ametys.runtime.servlet.RuntimeServlet#service:717 at javax.servlet.http.HttpServlet#service:623 at org.apache.catalina.core.ApplicationFilterChain#internalDoFilter:209 at org.apache.catalina.core.ApplicationFilterChain#doFilter:153 at org.apache.tomcat.websocket.server.WsFilter#doFilter:51 at org.apache.catalina.core.ApplicationFilterChain#internalDoFilter:178 at org.apache.catalina.core.ApplicationFilterChain#doFilter:153 at org.apache.catalina.core.StandardWrapperValve#invoke:167 at org.apache.catalina.core.StandardContextValve#invoke:90 at org.apache.catalina.authenticator.AuthenticatorBase#invoke:481 at org.apache.catalina.core.StandardHostValve#invoke:130 at org.apache.catalina.valves.ErrorReportValve#invoke:93 at org.apache.catalina.valves.AbstractAccessLogValve#invoke:673 at org.apache.catalina.core.StandardEngineValve#invoke:74 at org.apache.catalina.connector.CoyoteAdapter#service:343 at org.apache.coyote.http11.Http11Processor#service:390 at org.apache.coyote.AbstractProcessorLight#process:63 at org.apache.coyote.AbstractProtocol$ConnectionHandler#process:926 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor#doRun:1791 at org.apache.tomcat.util.net.SocketProcessorBase#run:52 at org.apache.tomcat.util.threads.ThreadPoolExecutor#runWorker:1191 at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker#run:659 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable#run:61 at java.base/java.lang.Thread#run:1583 Caused by: org.apache.excalibur.source.SourceException: Cannot get input stream for cocoon://_plugins/core-ui/client-call?role=org.ametys.plugins.workspaces.project.ProjectsCatalogueManager&methodName=editProject¶meters=zoneItem://b6488f5e-0912-4346-afc3-8175f88edd6a¶meters=project://f9663325-db16-4c6f-ba9d-e54097b83542¶meters=Test¶meters=¶meters=true¶meters=TEST¶meters=[]¶meters=1¶meters=[dorian.ceyrat@limoges-metropole.fr#utilisateurs, lrey#utilisateurs]¶meters=[org.ametys.plugins.workspaces.threads.ThreadWorkspaceModule, org.ametys.plugins.workspaces.calendars.CalendarWorkspaceModule, org.ametys.plugins.workspaces.documents.DocumentWorkspaceModule, org.ametys.plugins.workspaces.tasks.TasksWorkspaceModule, org.ametys.plugins.workspaces.news.NewsWorkspaceModule, org.ametys.plugins.workspaces.alert.AlertWorkspaceModule, org.ametys.plugins.workspaces.members.MembersWorkspaceModule, org.ametys.plugins.workspaces.about.AboutWorkspaceModule, org.ametys.plugins.workspaces.minisite.MiniSiteWorkspaceModule, org.ametys.plugins.workspaces.forum.ForumWorkspaceModule]& at org.apache.cocoon.components.source.impl.SitemapSource#getInputStream:253 at org.ametys.core.ui.dispatcher.DispatchGenerator#_handleResponse:266 at org.ametys.core.ui.dispatcher.DispatchGenerator#_dispatchingSubRequest:221 ... 94 more Caused by: org.xml.sax.SAXException: Could not get sitemap source cocoon://_plugins/core-ui/client-call?role=org.ametys.plugins.workspaces.project.ProjectsCatalogueManager&methodName=editProject¶meters=zoneItem://XXXXXXXXX¶meters=project://XXXXXXX¶meters=Test¶meters=¶meters=true¶meters=TEST¶meters=[]¶meters=1¶meters=[XXXXXXXXXXX#utilisateurs, XXX#utilisateurs]¶meters=[org.ametys.plugins.workspaces.threads.ThreadWorkspaceModule, org.ametys.plugins.workspaces.calendars.CalendarWorkspaceModule, org.ametys.plugins.workspaces.documents.DocumentWorkspaceModule, org.ametys.plugins.workspaces.tasks.TasksWorkspaceModule, org.ametys.plugins.workspaces.news.NewsWorkspaceModule, org.ametys.plugins.workspaces.alert.AlertWorkspaceModule, org.ametys.plugins.workspaces.members.MembersWorkspaceModule, org.ametys.plugins.workspaces.about.AboutWorkspaceModule, org.ametys.plugins.workspaces.minisite.MiniSiteWorkspaceModule, org.ametys.plugins.workspaces.forum.ForumWorkspaceModule]& org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap at <map:mount> - resource://org/ametys/runtime/kernel/sitemap.xmap:155:82 at org.apache.cocoon.components.source.impl.SitemapSource#init:380 at org.apache.cocoon.components.source.impl.SitemapSource#<init>:215 at org.apache.cocoon.components.source.impl.SitemapSourceFactory#getSource:68 at org.apache.excalibur.source.impl.SourceResolverImpl#resolveURI:208 at org.apache.cocoon.components.CocoonComponentManager#resolveURI:558 at org.apache.cocoon.components.CocoonComponentManager#resolveURI:558 at org.ametys.core.ui.dispatcher.DispatchGenerator#_dispatchingSubRequest:217 ... 94 more Caused by: org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap at <map:mount> - resource://org/ametys/runtime/kernel/sitemap.xmap:155:82 at org.apache.cocoon.ProcessingException#throwLocated:113 at org.apache.cocoon.components.treeprocessor.sitemap.MountNode#invoke:122 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#buildPipeline:194 at org.apache.cocoon.components.treeprocessor.TreeProcessor#buildPipeline:267 at org.apache.cocoon.components.source.impl.SitemapSource#init:333 ... 100 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.DirectMethodHandleAccessor#invoke:115 at java.base/java.lang.reflect.Method#invoke:580 at org.ametys.core.ui.ExecuteClientCallsAction#_executeMethod:206 at org.ametys.core.ui.ExecuteClientCallsAction#act:184 at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode#invoke:120 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:47 at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode#invoke:108 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode#invoke:143 at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode#invokeNodes:69 at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode#invoke:93 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#process:236 at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor#buildPipeline:194 at org.apache.cocoon.components.treeprocessor.TreeProcessor#buildPipeline:267 at org.apache.cocoon.components.treeprocessor.sitemap.MountNode#invoke:111 ... 110 more Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Set.contains(Object)" because the return value of "org.ametys.plugins.workspaces.project.notification.preferences.NotificationPreferencesHelper.getPausedProjects(org.ametys.core.user.UserIdentity)" is null at org.ametys.plugins.workspaces.project.ProjectsCatalogueManager#editProject:564 at java.base/jdk.internal.reflect.DirectMethodHandleAccessor#invoke:103 ... 124 more