Uploaded image for project: 'Runtime'
  1. Runtime
  2. RUNTIME-3897

Imbricated repeaters and size problems

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • 4.8.1, 4.9.0
    • 4.8.0, 4.7.5
    • None
    • None
    • 4.8.1
    • Oui

      Steps to reproduce

      • Having a content type with a lot of complicated fields, multiple tabs and imbricated repeaters, so interface can be a little slow.
      • Create repeater entries
      • Create a sub repeater entry on one repeater entry then move the order (of the principal entry) fastly to the top or the bottom (to be very fast, add the entry with the keyboard and prepare your mouse to move the principal entry or inversely)
      • Try to save, you should get this error:
        [...]Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
        	at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$10(EditContentFunction.java:652)
        	at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:76)
        	at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:572)
        	at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$10(EditContentFunction.java:659)
        	at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:76)
        	at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:572)
        	at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$11(EditContentFunction.java:666)
        	at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:81)
        	at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:572)
        	at org.ametys.cms.workflow.EditContentFunction.getValues(EditContentFunction.java:554)
        	at org.ametys.cms.workflow.EditContentFunction.execute(EditContentFunction.java:247)
        [...]

      Data send to the EditContentFunction contains a size for a repeater without any data:

      _content.input.conditionAcces[5]/previous-position=6
      content.input.conditionAcces[5]/libelle=toto
      content.input.conditionAcces[5]/anneeAdmission=null
      content.input.conditionAcces[5]/niveauEtude=null
      content.input.conditionAcces[5]/modalites=[]
      content.input.conditionAcces[5]/admissionCommune=null
      content.input.conditionAcces[5]/admissionSurDossier=false
      content.input.conditionAcces[5]/admissionSurTest=false
      content.input.conditionAcces[5]/admissionSurEntretien=false
      content.input.conditionAcces[5]/modaliteAdmission=
      content.input.conditionAcces[5]/url=null
      _content.input.conditionAcces[5]/calendrier/size=0
      _content.input.conditionAcces[5]/statistiques/size=1
      content.input.conditionAcces[5]/procedureAPB=false
      content.input.conditionAcces[5]/admissionDeDroit=false
      content.input.conditionAcces[5]/admissionSurConcoursPropre=false
      content.input.conditionAcces[5]/publicCible=[]
      content.input.conditionAcces[5]/aireGeographique=null
      content.input.conditionAcces[5]/anneeReference=null
      content.input.conditionAcces[5]/coutInscription=null
      content.input.conditionAcces[5]/devise=content://22506607-1e30-4e2b-a116-0db8440fb7b9
      content.input.conditionAcces[5]/commentaireCoutInscription=
      content.input.conditionAcces[5]/typeDiplomeRequis=[]
      content.input.conditionAcces[5]/formationRequise=[]
      content.input.conditionAcces[5]/prerequis=
      content.input.conditionAcces[5]/ageMin=null
      content.input.conditionAcces[5]/ageMax=null
      content.input.conditionAcces[5]/commentaireAge=

      If the "statistiques" field is real (I don't know because I didn't count before how many were there), it hasn't been validated either.

          [RUNTIME-3897] Imbricated repeaters and size problems

          Bérénice Maurel added a comment - - edited

          It's the same stack trace, with the same structure of sent values, it is the same issue.
          Maybe one bug can hide another one (like trains) but the initial issue is still there.

          Bérénice Maurel added a comment - - edited It's the same stack trace, with the same structure of sent values, it is the same issue. Maybe one bug can hide another one (like trains) but the initial issue is still there.

          not the same technical nor functionnal issue
          (just the server error is common)
          open anothet issue please

          Raphaël Franchet added a comment - not the same technical nor functionnal issue (just the server error is common) open anothet issue please

          Bérénice Maurel added a comment - - edited

          I reproduce it again on a 4.9 snapshot (demo ODF nightly):

          • On a container with two complementary thematics with one rule each, edit the complementary rules.
          • Add a thematic (with the button on the top of the repeater), then move it to the end and remove it.
          • Add a rule (with the button on the top of the repeater) to the first thematic, then move it to the end and fill it.
          • Save and close.
            2025-03-24 14:32:23,881 ERROR [org.ametys.plugins.core.ui] (http-nio-8080-exec-161;/nightly-odf-cms/plugins/core-ui/servercomm/messages.xml) Can not dispatch request '3' : 'cms' 'do-action/2' '{values={_content.input.thematics/size=2, _content.input.thematics[1]/previous-position=1, content.input.thematics[1]/title=Règle complémentaire 1, _content.input.thematics[1]/rules/size=2, _content.input.thematics[1]/rules[1]/previous-position=1, content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation=<p>Super</p>, _content.input.thematics[2]/previous-position=2, content.input.thematics[2]/title=Règle complémentaire 2, _content.input.thematics[2]/rules/size=1, _content.input.thematics[2]/rules[1]/previous-position=1, content.input.thematics[2]/rules[1]/text=<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position=-1, content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p>}, contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c, quit=true, content.view=thematics-edition, content.fallback.view=main, ignore.warnings=false}'
            org.apache.cocoon.util.location.LocatedException: Can not dispatch request '3' : 'cms' 'do-action/2' '{values={_content.input.thematics/size=2, _content.input.thematics[1]/previous-position=1, content.input.thematics[1]/title=Règle complémentaire 1, _content.input.thematics[1]/rules/size=2, _content.input.thematics[1]/rules[1]/previous-position=1, content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation=<p>Super</p>, _content.input.thematics[2]/previous-position=2, content.input.thematics[2]/title=Règle complémentaire 2, _content.input.thematics[2]/rules/size=1, _content.input.thematics[2]/rules[1]/previous-position=1, content.input.thematics[2]/rules[1]/text=<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position=-1, content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p>}, contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c, quit=true, content.view=thematics-edition, content.fallback.view=main, ignore.warnings=false}'
            	at org.ametys.core.ui.dispatcher.DispatchGenerator._handleError(DispatchGenerator.java:314)
            	at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatchingSubRequest(DispatchGenerator.java:227)
            	at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:142)
            	at org.ametys.core.ui.dispatcher.DispatchGenerator.generate(DispatchGenerator.java:93)
            	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:717)
            	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
            	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
            	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
            	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
            	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
            	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
            	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
            	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
            	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
            	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
            	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:396)
            	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
            	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937)
            	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
            	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
            	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
            	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
            	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
            	at java.base/java.lang.Thread.run(Thread.java:1583)
            Caused by: org.apache.excalibur.source.SourceException: Cannot get input stream for cocoon://_plugins/cms/do-action/2?values={_content.input.thematics/size%3D2, _content.input.thematics[1]/previous-position%3D1, content.input.thematics[1]/title%3DRègle complémentaire 1, _content.input.thematics[1]/rules/size%3D2, _content.input.thematics[1]/rules[1]/previous-position%3D1, content.input.thematics[1]/rules[1]/text%3D<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation%3D<p>Super</p>, _content.input.thematics[2]/previous-position%3D2, content.input.thematics[2]/title%3DRègle complémentaire 2, _content.input.thematics[2]/rules/size%3D1, _content.input.thematics[2]/rules[1]/previous-position%3D1, content.input.thematics[2]/rules[1]/text%3D<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation%3D<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position%3D-1, content.input.thematics[3]/rules[2]/text%3D<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation%3D<p>Ecnore et encore...</p>}&contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c&quit=true&content.view=thematics-edition&content.fallback.view=main&ignore.warnings=false&
            	at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:253)
            	at org.ametys.core.ui.dispatcher.DispatchGenerator._handleResponse(DispatchGenerator.java:266)
            	at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatchingSubRequest(DispatchGenerator.java:221)
            	... 70 more
            Caused by: org.xml.sax.SAXException: Could not get sitemap source cocoon://_plugins/cms/do-action/2?values={_content.input.thematics/size%3D2, _content.input.thematics[1]/previous-position%3D1, content.input.thematics[1]/title%3DRègle complémentaire 1, _content.input.thematics[1]/rules/size%3D2, _content.input.thematics[1]/rules[1]/previous-position%3D1, content.input.thematics[1]/rules[1]/text%3D<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation%3D<p>Super</p>, _content.input.thematics[2]/previous-position%3D2, content.input.thematics[2]/title%3DRègle complémentaire 2, _content.input.thematics[2]/rules/size%3D1, _content.input.thematics[2]/rules[1]/previous-position%3D1, content.input.thematics[2]/rules[1]/text%3D<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation%3D<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position%3D-1, content.input.thematics[3]/rules[2]/text%3D<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation%3D<p>Ecnore et encore...</p>}&contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c&quit=true&content.view=thematics-edition&content.fallback.view=main&ignore.warnings=false&
            org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap
            	at <map:mount> - resource://org/ametys/runtime/kernel/sitemap.xmap:154:82
            	at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:380)
            	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._dispatchingSubRequest(DispatchGenerator.java:217)
            	... 70 more
            Caused by: org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap
            	at <map:mount> - resource://org/ametys/runtime/kernel/sitemap.xmap:154:82
            	at org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:113)
            	at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:122)
            	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)
            	... 78 more
            Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
            	at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$15(EditContentFunction.java:775)
            	at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:77)
            	at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:695)
            	at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$15(EditContentFunction.java:782)
            	at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:77)
            	at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:695)
            	at org.ametys.cms.workflow.EditContentFunction.getValues(EditContentFunction.java:676)
            	at org.ametys.cms.workflow.EditContentFunction.execute(EditContentFunction.java:286)
            	at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:871)
            	at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1044)
            	at org.ametys.plugins.workflow.AbstractAmetysWorkflow.transitionWorkflow(AbstractAmetysWorkflow.java:213)
            	at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:567)
            	at org.ametys.plugins.workflow.AbstractAmetysWorkflow.doAction(AbstractAmetysWorkflow.java:165)
            	at org.ametys.cms.workflow.ContentWorkflowAction._act(ContentWorkflowAction.java:69)
            	at org.ametys.plugins.workflow.cocoon.AbstractWorkflowAction.act(AbstractWorkflowAction.java:74)
            	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:125)
            	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47)
            	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:139)
            	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)
            	... 88 more

            Formatted values:

            {
                values={
                    _content.input.thematics/size=2,
                    _content.input.thematics[1]/previous-position=1,
                    content.input.thematics[1]/title=Règle complémentaire 1,
                    _content.input.thematics[1]/rules/size=2,
                    _content.input.thematics[1]/rules[1]/previous-position=1,
                    content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>,
                    content.input.thematics[1]/rules[1]/motivation=<p>Super</p>,
                    _content.input.thematics[2]/previous-position=2,
                    content.input.thematics[2]/title=Règle complémentaire 2,
                    _content.input.thematics[2]/rules/size=1,
                    _content.input.thematics[2]/rules[1]/previous-position=1,
                    content.input.thematics[2]/rules[1]/text=<p>RC 2</p>,
                    content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>,
                    _content.input.thematics[3]/rules[2]/previous-position=-1,
                    content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>,
                    content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p>
                },
                contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c,
                quit=true,
                content.view=thematics-edition,
                content.fallback.view=main,
                ignore.warnings=false
            }

            All content.input.thematics[3]/rules[2] should be content.input.thematics[1]/rules[2].

          I take my time to do it.
          I don't know if it is full reproducible.

          Bérénice Maurel added a comment - - edited I reproduce it again on a 4.9 snapshot (demo ODF nightly): On a container with two complementary thematics with one rule each, edit the complementary rules. Add a thematic (with the button on the top of the repeater), then move it to the end and remove it. Add a rule (with the button on the top of the repeater) to the first thematic, then move it to the end and fill it. Save and close. 2025-03-24 14:32:23,881 ERROR [org.ametys.plugins.core.ui] (http-nio-8080-exec-161;/nightly-odf-cms/plugins/core-ui/servercomm/messages.xml) Can not dispatch request '3' : 'cms' ' do -action/2' '{values={_content.input.thematics/size=2, _content.input.thematics[1]/previous-position=1, content.input.thematics[1]/title=Règle complémentaire 1, _content.input.thematics[1]/rules/size=2, _content.input.thematics[1]/rules[1]/previous-position=1, content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation=<p>Super</p>, _content.input.thematics[2]/previous-position=2, content.input.thematics[2]/title=Règle complémentaire 2, _content.input.thematics[2]/rules/size=1, _content.input.thematics[2]/rules[1]/previous-position=1, content.input.thematics[2]/rules[1]/text=<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position=-1, content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p>}, contentId=container: //debd414e-84ed-4df7-8e4a-9d4ea0b14b2c, quit= true , content.view=thematics-edition, content.fallback.view=main, ignore.warnings= false }' org.apache.cocoon.util.location.LocatedException: Can not dispatch request '3' : 'cms' ' do -action/2' '{values={_content.input.thematics/size=2, _content.input.thematics[1]/previous-position=1, content.input.thematics[1]/title=Règle complémentaire 1, _content.input.thematics[1]/rules/size=2, _content.input.thematics[1]/rules[1]/previous-position=1, content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation=<p>Super</p>, _content.input.thematics[2]/previous-position=2, content.input.thematics[2]/title=Règle complémentaire 2, _content.input.thematics[2]/rules/size=1, _content.input.thematics[2]/rules[1]/previous-position=1, content.input.thematics[2]/rules[1]/text=<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position=-1, content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p>}, contentId=container: //debd414e-84ed-4df7-8e4a-9d4ea0b14b2c, quit= true , content.view=thematics-edition, content.fallback.view=main, ignore.warnings= false }' at org.ametys.core.ui.dispatcher.DispatchGenerator._handleError(DispatchGenerator.java:314) at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatchingSubRequest(DispatchGenerator.java:227) at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:142) at org.ametys.core.ui.dispatcher.DispatchGenerator.generate(DispatchGenerator.java:93) 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:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:396) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang. Thread .run( Thread .java:1583) Caused by: org.apache.excalibur.source.SourceException: Cannot get input stream for cocoon: //_plugins/cms/ do -action/2?values={_content.input.thematics/size%3D2, _content.input.thematics[1]/previous-position%3D1, content.input.thematics[1]/title%3DRègle complémentaire 1, _content.input.thematics[1]/rules/size%3D2, _content.input.thematics[1]/rules[1]/previous-position%3D1, content.input.thematics[1]/rules[1]/text%3D<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation%3D<p>Super</p>, _content.input.thematics[2]/previous-position%3D2, content.input.thematics[2]/title%3DRègle complémentaire 2, _content.input.thematics[2]/rules/size%3D1, _content.input.thematics[2]/rules[1]/previous-position%3D1, content.input.thematics[2]/rules[1]/text%3D<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation%3D<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position%3D-1, content.input.thematics[3]/rules[2]/text%3D<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation%3D<p>Ecnore et encore...</p>}&contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c&quit= true &content.view=thematics-edition&content.fallback.view=main&ignore.warnings= false & at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:253) at org.ametys.core.ui.dispatcher.DispatchGenerator._handleResponse(DispatchGenerator.java:266) at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatchingSubRequest(DispatchGenerator.java:221) ... 70 more Caused by: org.xml.sax.SAXException: Could not get sitemap source cocoon: //_plugins/cms/ do -action/2?values={_content.input.thematics/size%3D2, _content.input.thematics[1]/previous-position%3D1, content.input.thematics[1]/title%3DRègle complémentaire 1, _content.input.thematics[1]/rules/size%3D2, _content.input.thematics[1]/rules[1]/previous-position%3D1, content.input.thematics[1]/rules[1]/text%3D<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation%3D<p>Super</p>, _content.input.thematics[2]/previous-position%3D2, content.input.thematics[2]/title%3DRègle complémentaire 2, _content.input.thematics[2]/rules/size%3D1, _content.input.thematics[2]/rules[1]/previous-position%3D1, content.input.thematics[2]/rules[1]/text%3D<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation%3D<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position%3D-1, content.input.thematics[3]/rules[2]/text%3D<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation%3D<p>Ecnore et encore...</p>}&contentId=container://debd414e-84ed-4df7-8e4a-9d4ea0b14b2c&quit= true &content.view=thematics-edition&content.fallback.view=main&ignore.warnings= false & org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap at <map:mount> - resource: //org/ametys/runtime/kernel/sitemap.xmap:154:82 at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:380) 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._dispatchingSubRequest(DispatchGenerator.java:217) ... 70 more Caused by: org.apache.cocoon.ProcessingException: Sitemap: error when calling sub-sitemap at <map:mount> - resource: //org/ametys/runtime/kernel/sitemap.xmap:154:82 at org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:113) at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:122) 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) ... 78 more Caused by: java.lang.NullPointerException: Cannot invoke "java.lang. Integer .intValue()" because the return value of "java.util.Map.get( Object )" is null at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$15(EditContentFunction.java:775) at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:77) at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:695) at org.ametys.cms.workflow.EditContentFunction.lambda$_parseValues$15(EditContentFunction.java:782) at org.ametys.plugins.repository.model.ViewHelper.visitView(ViewHelper.java:77) at org.ametys.cms.workflow.EditContentFunction._parseValues(EditContentFunction.java:695) at org.ametys.cms.workflow.EditContentFunction.getValues(EditContentFunction.java:676) at org.ametys.cms.workflow.EditContentFunction.execute(EditContentFunction.java:286) at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:871) at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1044) at org.ametys.plugins.workflow.AbstractAmetysWorkflow.transitionWorkflow(AbstractAmetysWorkflow.java:213) at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:567) at org.ametys.plugins.workflow.AbstractAmetysWorkflow.doAction(AbstractAmetysWorkflow.java:165) at org.ametys.cms.workflow.ContentWorkflowAction._act(ContentWorkflowAction.java:69) at org.ametys.plugins.workflow.cocoon.AbstractWorkflowAction.act(AbstractWorkflowAction.java:74) at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:125) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:47) at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:139) 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) ... 88 more Formatted values: { values={ _content.input.thematics/size=2, _content.input.thematics[1]/previous-position=1, content.input.thematics[1]/title=Règle complémentaire 1, _content.input.thematics[1]/rules/size=2, _content.input.thematics[1]/rules[1]/previous-position=1, content.input.thematics[1]/rules[1]/text=<p>Oh yeah</p>, content.input.thematics[1]/rules[1]/motivation=<p>Super</p>, _content.input.thematics[2]/previous-position=2, content.input.thematics[2]/title=Règle complémentaire 2, _content.input.thematics[2]/rules/size=1, _content.input.thematics[2]/rules[1]/previous-position=1, content.input.thematics[2]/rules[1]/text=<p>RC 2</p>, content.input.thematics[2]/rules[1]/motivation=<p>Ahah</p>, _content.input.thematics[3]/rules[2]/previous-position=-1, content.input.thematics[3]/rules[2]/text=<p>Seconde règle du premier pavé</p>, content.input.thematics[3]/rules[2]/motivation=<p>Ecnore et encore...</p> }, contentId=container: //debd414e-84ed-4df7-8e4a-9d4ea0b14b2c, quit= true , content.view=thematics-edition, content.fallback.view=main, ignore.warnings= false } All content.input.thematics [3] /rules [2] should be content.input.thematics [1] /rules [2] . I take my time to do it. I don't know if it is full reproducible.

            raphael Raphaël Franchet
            bmaurel Bérénice Maurel
            Raphaël Franchet Raphaël Franchet
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: