-
Bug
-
Resolution: Fixed
-
Critical
-
4.8.0
-
None
-
None
-
4.8.0 M7, 4.8.0 M9
Steps to reproduce
- Having a content type with a mandatory field having a disable conditions on another field (restrictorField), this field have to be into a repeater entry. (Note that the disable condition is a relative path : ../myRestrictorField)
- Create a content of this content type
- Add a repeater entry to it, don't fill the mandatory field
- Make your field disabled by changing the value of the restrictor field
- Save the content
- It fails silently
- If you reopen the content, modifications are not there
You get an error in the logs:
Can not dispatch request '3' : 'cms' 'do-action/2' '{values={content.input.code=H6YRIN8O, content.input.title={local=Histoire du droit, external=Histoire du droit, status=external}, content.input.courseType=content://afbcda44-6a09-448c-8901-02693a1c3924, content.input.ects={local=null, external=null, status=local}, content.input.level=null, content.input.description={local=, external=, status=local}, content.input.objectives={local=, external=, status=local}, content.input.openToExchangeStudents=false, content.input.neededPrerequisite=, content.input.courseParts=[coursePartContent://c2dfd114-5b7c-456d-8d51-23a7b324cee2, coursePartContent://07343bc2-0070-47bf-9ac9-6547156f95a8], content.input.requiredSkills=[], _content.input.acquiredSkills/size=0, _content.input.lomSheets/size=0, content.input.erasmusCode=null, content.input.webLinkLabel=, content.input.webLinkUrl=, content.input.orgUnit={local=[], external=[], status=external}, content.input.teachingLocation={local=[], external=[], status=local}, content.input.campus=[], _content.input.contacts/size=0, content.input.keywords={local=[], external=[], status=external}, content.input.nbHours={local=null, external=null, status=local}, content.input.maxNumberOfStudents={local=, external=, status=local}, content.input.teachingTerm={local=null, external=null, status=local}, content.input.timeSlot=null, content.input.formofteachingMethod=null, content.input.formofteachingOrg=[], content.input.teachingActivity=null, content.input.teachingLanguage=[], content.input.startDate=, content.input.disciplineEnseignement=null, content.input.elpCode=, content.input.etapePorteuse=null, content.input.numberOfStudentsEstimated=null, content.input.CodeAnu=null, content.input.shortLabel=, content.input.period=null, content.input.isEvaluated=false, content.input.mccCoefficient=null, content.input.mccRegime=null, _content.input.mccSession1/size=2, _content.input.mccSession2/size=0, _content.input.mccSession1[1]/previous-position=1, content.input.mccSession1[1]/label=Devoir sur table intermédiaire, content.input.mccSession1[1]/natureEnseignement=content://6c9531df-9dab-49ec-8130-a9712f400353, content.input.mccSession1[1]/modalite=content://66184d63-f584-4f71-8f39-7258a64f96e2, content.input.mccSession1[1]/nature=content://ad2e2e5b-460c-4e17-a608-bbb846a1ec36, content.input.mccSession1[1]/duree=90, content.input.mccSession1[1]/nombre=1, content.input.mccSession1[1]/coefficient=3, content.input.mccSession1[1]/noteEliminatoire=null, content.input.mccSession1[1]/reportSession2=false, content.input.mccSession1[1]/foreignLanguage=null, content.input.mccSession1[1]/remarques=, _content.input.mccSession1[2]/previous-position=2, content.input.mccSession1[2]/label=, content.input.mccSession1[2]/natureEnseignement=content://7543c5ea-28c3-498e-b49d-e25542c8984e, content.input.mccSession1[2]/modalite=null, content.input.mccSession1[2]/nature=content://9f287a18-e094-4348-9dc1-e26937e4efc7, content.input.mccSession1[2]/duree=null, content.input.mccSession1[2]/nombre=2, content.input.mccSession1[2]/coefficient=2, content.input.mccSession1[2]/noteEliminatoire=null, content.input.mccSession1[2]/reportSession2=false, content.input.mccSession1[2]/foreignLanguage=null, content.input.mccSession1[2]/remarques=, hiddenfield-11230-inputEl=coursePartContent://c2dfd114-5b7c-456d-8d51-23a7b324cee2, hiddenfield-11233-inputEl=coursePartContent://07343bc2-0070-47bf-9ac9-6547156f95a8}, comments={content.input.code=[], content.input.title=[], content.input.courseType=[], content.input.ects=[], content.input.level=[], content.input.description=[], content.input.objectives=[], content.input.openToExchangeStudents=[], content.input.neededPrerequisite=[], content.input.courseParts=[], content.input.formOfAssessment=[], content.input.syllabus=[], content.input.skills=[], content.input.requiredSkills=[], _content.input.acquiredSkills/size=[], _content.input.lomSheets/size=[], content.input.additionalInformations=[], content.input.bibliography=[], content.input.erasmusCode=[], content.input.webLinkLabel=[], content.input.webLinkUrl=[], content.input.orgUnit=[], content.input.teachingLocation=[], content.input.campus=[], _content.input.contacts/size=[], content.input.keywords=[], content.input.nbHours=[], content.input.maxNumberOfStudents=[], content.input.teachingTerm=[], content.input.timeSlot=[], content.input.formofteachingMethod=[], content.input.formofteachingOrg=[], content.input.teachingActivity=[], content.input.teachingLanguage=[], content.input.startDate=[], content.input.disciplineEnseignement=[], content.input.elpCode=[], content.input.etapePorteuse=[], content.input.numberOfStudentsEstimated=[], content.input.CodeAnu=[], content.input.shortLabel=[], content.input.period=[], content.input.isEvaluated=[], content.input.mccCoefficient=[], content.input.mccRegime=[], _content.input.mccSession1/size=[], _content.input.mccSession2/size=[], _content.input.mccSession1[1]/previous-position=[], content.input.mccSession1[1]/label=[], content.input.mccSession1[1]/natureEnseignement=[], content.input.mccSession1[1]/modalite=[], content.input.mccSession1[1]/nature=[], content.input.mccSession1[1]/duree=[], content.input.mccSession1[1]/nombre=[], content.input.mccSession1[1]/coefficient=[], content.input.mccSession1[1]/noteEliminatoire=[], content.input.mccSession1[1]/reportSession2=[], content.input.mccSession1[1]/foreignLanguage=[], content.input.mccSession1[1]/remarques=[], _content.input.mccSession1[2]/previous-position=[], content.input.mccSession1[2]/label=[], content.input.mccSession1[2]/natureEnseignement=[], content.input.mccSession1[2]/modalite=[], content.input.mccSession1[2]/nature=[], content.input.mccSession1[2]/duree=[], content.input.mccSession1[2]/nombre=[], content.input.mccSession1[2]/coefficient=[], content.input.mccSession1[2]/noteEliminatoire=[], content.input.mccSession1[2]/reportSession2=[], content.input.mccSession1[2]/foreignLanguage=[], content.input.mccSession1[2]/remarques=[], hiddenfield-11230-inputEl=[], hiddenfield-11233-inputEl=[]}, contentId=courseContent://bba21fb9-8a18-4549-afce-d2cc660fcc7e, quit=true, content.view=default-edition, content.fallback.view=main}' Location: org.apache.cocoon.util.log.SLF4JLoggerAdapter.error(SLF4JLoggerAdapter.java:46) Thrown: org.apache.cocoon.util.location.LocatedException: Can not dispatch request '3' : 'cms' 'do-action/2' '{values={content.input.code=H6YRIN8O, content.input.title={local=Histoire du droit, external=Histoire du droit, status=external}, content.input.courseType=content://afbcda44-6a09-448c-8901-02693a1c3924, content.input.ects={local=null, external=null, status=local}, content.input.level=null, content.input.description={local=, external=, status=local}, content.input.objectives={local=, external=, status=local}, content.input.openToExchangeStudents=false, content.input.neededPrerequisite=, content.input.courseParts=[coursePartContent://c2dfd114-5b7c-456d-8d51-23a7b324cee2, coursePartContent://07343bc2-0070-47bf-9ac9-6547156f95a8], content.input.requiredSkills=[], _content.input.acquiredSkills/size=0, _content.input.lomSheets/size=0, content.input.erasmusCode=null, content.input.webLinkLabel=, content.input.webLinkUrl=, content.input.orgUnit={local=[], external=[], status=external}, content.input.teachingLocation={local=[], external=[], status=local}, content.input.campus=[], _content.input.contacts/size=0, content.input.keywords={local=[], external=[], status=external}, content.input.nbHours={local=null, external=null, status=local}, content.input.maxNumberOfStudents={local=, external=, status=local}, content.input.teachingTerm={local=null, external=null, status=local}, content.input.timeSlot=null, content.input.formofteachingMethod=null, content.input.formofteachingOrg=[], content.input.teachingActivity=null, content.input.teachingLanguage=[], content.input.startDate=, content.input.disciplineEnseignement=null, content.input.elpCode=, content.input.etapePorteuse=null, content.input.numberOfStudentsEstimated=null, content.input.CodeAnu=null, content.input.shortLabel=, content.input.period=null, content.input.isEvaluated=false, content.input.mccCoefficient=null, content.input.mccRegime=null, _content.input.mccSession1/size=2, _content.input.mccSession2/size=0, _content.input.mccSession1[1]/previous-position=1, content.input.mccSession1[1]/label=Devoir sur table intermédiaire, content.input.mccSession1[1]/natureEnseignement=content://6c9531df-9dab-49ec-8130-a9712f400353, content.input.mccSession1[1]/modalite=content://66184d63-f584-4f71-8f39-7258a64f96e2, content.input.mccSession1[1]/nature=content://ad2e2e5b-460c-4e17-a608-bbb846a1ec36, content.input.mccSession1[1]/duree=90, content.input.mccSession1[1]/nombre=1, content.input.mccSession1[1]/coefficient=3, content.input.mccSession1[1]/noteEliminatoire=null, content.input.mccSession1[1]/reportSession2=false, content.input.mccSession1[1]/foreignLanguage=null, content.input.mccSession1[1]/remarques=, _content.input.mccSession1[2]/previous-position=2, content.input.mccSession1[2]/label=, content.input.mccSession1[2]/natureEnseignement=content://7543c5ea-28c3-498e-b49d-e25542c8984e, content.input.mccSession1[2]/modalite=null, content.input.mccSession1[2]/nature=content://9f287a18-e094-4348-9dc1-e26937e4efc7, content.input.mccSession1[2]/duree=null, content.input.mccSession1[2]/nombre=2, content.input.mccSession1[2]/coefficient=2, content.input.mccSession1[2]/noteEliminatoire=null, content.input.mccSession1[2]/reportSession2=false, content.input.mccSession1[2]/foreignLanguage=null, content.input.mccSession1[2]/remarques=, hiddenfield-11230-inputEl=coursePartContent://c2dfd114-5b7c-456d-8d51-23a7b324cee2, hiddenfield-11233-inputEl=coursePartContent://07343bc2-0070-47bf-9ac9-6547156f95a8}, comments={content.input.code=[], content.input.title=[], content.input.courseType=[], content.input.ects=[], content.input.level=[], content.input.description=[], content.input.objectives=[], content.input.openToExchangeStudents=[], content.input.neededPrerequisite=[], content.input.courseParts=[], content.input.formOfAssessment=[], content.input.syllabus=[], content.input.skills=[], content.input.requiredSkills=[], _content.input.acquiredSkills/size=[], _content.input.lomSheets/size=[], content.input.additionalInformations=[], content.input.bibliography=[], content.input.erasmusCode=[], content.input.webLinkLabel=[], content.input.webLinkUrl=[], content.input.orgUnit=[], content.input.teachingLocation=[], content.input.campus=[], _content.input.contacts/size=[], content.input.keywords=[], content.input.nbHours=[], content.input.maxNumberOfStudents=[], content.input.teachingTerm=[], content.input.timeSlot=[], content.input.formofteachingMethod=[], content.input.formofteachingOrg=[], content.input.teachingActivity=[], content.input.teachingLanguage=[], content.input.startDate=[], content.input.disciplineEnseignement=[], content.input.elpCode=[], content.input.etapePorteuse=[], content.input.numberOfStudentsEstimated=[], content.input.CodeAnu=[], content.input.shortLabel=[], content.input.period=[], content.input.isEvaluated=[], content.input.mccCoefficient=[], content.input.mccRegime=[], _content.input.mccSession1/size=[], _content.input.mccSession2/size=[], _content.input.mccSession1[1]/previous-position=[], content.input.mccSession1[1]/label=[], content.input.mccSession1[1]/natureEnseignement=[], content.input.mccSession1[1]/modalite=[], content.input.mccSession1[1]/nature=[], content.input.mccSession1[1]/duree=[], content.input.mccSession1[1]/nombre=[], content.input.mccSession1[1]/coefficient=[], content.input.mccSession1[1]/noteEliminatoire=[], content.input.mccSession1[1]/reportSession2=[], content.input.mccSession1[1]/foreignLanguage=[], content.input.mccSession1[1]/remarques=[], _content.input.mccSession1[2]/previous-position=[], content.input.mccSession1[2]/label=[], content.input.mccSession1[2]/natureEnseignement=[], content.input.mccSession1[2]/modalite=[], content.input.mccSession1[2]/nature=[], content.input.mccSession1[2]/duree=[], content.input.mccSession1[2]/nombre=[], content.input.mccSession1[2]/coefficient=[], content.input.mccSession1[2]/noteEliminatoire=[], content.input.mccSession1[2]/reportSession2=[], content.input.mccSession1[2]/foreignLanguage=[], content.input.mccSession1[2]/remarques=[], hiddenfield-11230-inputEl=[], hiddenfield-11233-inputEl=[]}, contentId=courseContent://bba21fb9-8a18-4549-afce-d2cc660fcc7e, quit=true, content.view=default-edition, content.fallback.view=main}' 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:741) 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:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.xml.sax.SAXException: Fatal error parsing null (line 1 col. 65): Element type "mccSession1" must be followed by either attribute specifications, ">" or "/>". org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 65; Element type "mccSession1" must be followed by either attribute specifications, ">" or "/>". at org.apache.excalibur.xml.impl.JaxpParser.fatalError(JaxpParser.java:463) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:315) at org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:334) at org.ametys.core.ui.dispatcher.DispatchGenerator._handleResponse(DispatchGenerator.java:275) at org.ametys.core.ui.dispatcher.DispatchGenerator._dispatchingSubRequest(DispatchGenerator.java:221) ... 70 more Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 65; Element type "mccSession1" must be followed by either attribute specifications, ">" or "/>". at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) ... 87 more
It seems that the DispatchGenerator is not able to sax the error elements. I think it is because there is a / in the path which is maybe used as a tag name, but I'm not sure of this hipothesis.