Uploaded image for project: 'Offre de formation'
  1. Offre de formation
  2. ODF-3191

NPE sur la racine de l'ODF et l'enregistrement

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 4.4.13, 4.5.3, 4.6.0
    • 4.4.12, 4.5.2, 4.6.0
    • ODF-web
    • None
    • 4.6 M2

      Premier symptôme : A l'enregistrement d'un contenu, nous obtenons une NPE.

      URI de la requête : /plugins/core-ui/servercomm/messages.xml
      Message : Can not dispatch request '3' : 'core-ui' 'client-call' '{role=org.ametys.web.repository.page.PageDAO, methodName=getPagesInfos, parameters=[[page://81a650b7-a98f-4776-a532-d9f1db0e0aa0, page://893506fa-c1ff-4da5-b349-ffa4c5072962], null, null]}'
      Emplacement : org.apache.cocoon.util.log.SLF4JLoggerAdapter.error(SLF4JLoggerAdapter.java:46)
      
      org.apache.cocoon.util.location.LocatedException: Can not dispatch request '3' : 'core-ui' 'client-call' '{role=org.ametys.web.repository.page.PageDAO, methodName=getPagesInfos, parameters=[[page://81a650b7-a98f-4776-a532-d9f1db0e0aa0, page://893506fa-c1ff-4da5-b349-ffa4c5072962], null, null]}'
      at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:198)
      [...]
      Caused by: java.lang.reflect.InvocationTargetException
      at jdk.internal.reflect.GeneratedMethodAccessor243.invoke(Unknown Source)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at org.ametys.core.ui.ExecuteClientCallsAction._executeMethod(ExecuteClientCallsAction.java:204)
      at org.ametys.core.ui.ExecuteClientCallsAction.act(ExecuteClientCallsAction.java:182)
      at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:120)
      at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
      at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
      at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
      at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
      at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
      at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
      at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
      at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:194)
      at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:267)
      at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:111)
      ... 87 more
      Caused by: java.lang.NullPointerException
          at org.ametys.plugins.odfweb.repository.FirstLevelPageFactory.getChild(FirstLevelPageFactory.java:135)
          at org.ametys.plugins.odfweb.repository.FirstLevelPageFactory.getChild(FirstLevelPageFactory.java:44)
          at org.ametys.plugins.repository.AmetysObjectResolver._getVirtualChild(AmetysObjectResolver.java:727)
          at org.ametys.plugins.repository.AmetysObjectResolver.resolveVirtualChild(AmetysObjectResolver.java:607)
          at org.ametys.plugins.repository.jcr.TraversableAmetysObjectHelper.getChild(TraversableAmetysObjectHelper.java:146)
          at org.ametys.plugins.repository.jcr.DefaultTraversableAmetysObjectFactory.getChild(DefaultTraversableAmetysObjectFactory.java:51)
          at org.ametys.plugins.repository.jcr.DefaultTraversableAmetysObject.getChild(DefaultTraversableAmetysObject.java:71)
          at org.ametys.web.repository.page.jcr.DefaultPage.getZones(DefaultPage.java:406)
          at org.ametys.web.repository.page.PageDAO.getPageInfos(PageDAO.java:365)
          at org.ametys.web.repository.page.PageDAO.getPagesInfos(PageDAO.java:247)
          at jdk.internal.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
          at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.base/java.lang.reflect.Method.invoke(Method.java:566)
          at org.ametys.core.ui.ExecuteClientCallsAction._executeMethod(ExecuteClientCallsAction.java:204)
          at org.ametys.core.ui.ExecuteClientCallsAction.act(ExecuteClientCallsAction.java:182)
          at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:120)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:194)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:267)
          at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:111)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.buildPipeline(ConcreteTreeProcessor.java:194)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.buildPipeline(TreeProcessor.java:267)
          at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:333)
          at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:215)
          at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:68)
          at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:208)
          at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
          at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
          at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
          at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:558)
          at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:153)
          at org.ametys.core.ui.dispatcher.DispatchGenerator.generate(DispatchGenerator.java:95)
          at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:581)
          at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:301)
          at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:483)
          at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:144)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
          at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
          at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
          at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:118)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
          at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:108)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:143)
          at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:69)
          at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:236)
          at org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:178)
          at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:254)
          at org.apache.cocoon.Cocoon.process(Cocoon.java:699)
          at org.ametys.runtime.servlet.RuntimeServlet.service(RuntimeServlet.java:580)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
          at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
          at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
          at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
          at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
          at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
          at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
          at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
          at java.base/java.lang.Thread.run(Thread.java:834)

      Version Java 17 :

      Cannot invoke "org.ametys.odf.tree.OdfClassificationHandler$LevelValue.getValue()" because the return value of "java.util.Map.get(Object)" is null
      java.lang.NullPointerException: Cannot invoke "org.ametys.odf.tree.OdfClassificationHandler$LevelValue.getValue()" because the return value of "java.util.Map.get(Object)" is null

      Il s'avère que le noeud de page concerné est une racine de l'ODF, elle est de type CONTAINER (page avec zones) et le sous-noeud ametys-internal:zones n'est pas créé (ce qui est tout à fait normal).

      Etapes de reproduction

      1. Créer une page dans un site ODF
      2. Lui affecter un gabarit
      3. Cliquer sur Terminer (sans passer à l'étape suivante)
      4. Définir cette page comme racine de l'ODF
      5. Rien qu'à la sélection de cette page dans le plan du site, la NPE est la même

            bmaurel Bérénice Maurel
            bmaurel Bérénice Maurel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: