I have a domain which does not have any code
Domain is the second level of the ODF root page
I have a program whose domain is this domain without code
When I edit this program, I get the following error :
Date: Tue Jan 30 15:52:37 CET 2018 (1517323957875) Thread: http-nio-39010-exec-6 Message #: 19 Level: ERROR NDC: Category: org.ametys.plugins.odfweb.observation.solr.SolrOdfContentModifiedObserver Message: An error occured when indexing all pages referencing the content 'programContent://8ef8a223-65c7-402c-ac51-437dc30ff238' (program-odf-1696-nouvelle-formation) Location: org.ametys.web.indexing.observation.SolrPageContentModifiedObserver.observe(SolrPageContentModifiedObserver.java:54) Thrown: org.ametys.cms.indexing.IndexingException: Failed to index page program://_root?rootId=page://280e41b5-ad7f-4416-ad8b-5b7f8c6899f8&programId=programContent://8ef8a223-65c7-402c-ac51-437dc30ff238 in workspace default at org.ametys.web.indexing.solr.SolrPageIndexer._indexPage(SolrPageIndexer.java:237) at org.ametys.web.indexing.solr.SolrPageIndexer.reindexPage(SolrPageIndexer.java:922) at org.ametys.plugins.odfweb.observation.solr.SolrOdfContentModifiedObserver._updateIndexReferencingPages(SolrOdfContentModifiedObserver.java:59) at org.ametys.web.indexing.observation.SolrPageContentModifiedObserver.observe(SolrPageContentModifiedObserver.java:50) at org.ametys.core.observation.ObservationManager._observesEvent(ObservationManager.java:353) at org.ametys.core.observation.ObservationManager.notify(ObservationManager.java:159) at org.ametys.cms.workflow.EditContentFunction._notifyContentModified(EditContentFunction.java:416) at org.ametys.cms.workflow.EditContentFunction.execute(EditContentFunction.java:342) [...] Caused by: org.ametys.plugins.repository.UnknownAmetysObjectException: There's no virtual child page named content: for parent '/ametys-internal:sites/www/ametys-internal:sitemaps/fr/formations/catalogue' (page://280e41b5-ad7f-4416-ad8b-5b7f8c6899f8) at org.ametys.plugins.odfweb.repository.SecondLevelPageFactory.lambda$1(SecondLevelPageFactory.java:63) at java.util.Optional.orElseThrow(Optional.java:290) at org.ametys.plugins.odfweb.repository.SecondLevelPageFactory.getAmetysObjectById(SecondLevelPageFactory.java:62) at org.ametys.plugins.odfweb.repository.SecondLevelPageFactory.getAmetysObjectById(SecondLevelPageFactory.java:1) at org.ametys.plugins.repository.AmetysObjectResolver.resolveById(AmetysObjectResolver.java:310) at org.ametys.plugins.odfweb.repository.ProgramPage._computeLevelsPath(ProgramPage.java:237) at org.ametys.plugins.odfweb.repository.ProgramPage.getPathInSitemap(ProgramPage.java:212) at org.ametys.web.indexing.solr.SolrPageIndexer._populatePageContentsDocument(SolrPageIndexer.java:411) at org.ametys.web.indexing.solr.SolrPageIndexer._populatePageDocument(SolrPageIndexer.java:290) at org.ametys.web.indexing.solr.SolrPageIndexer._indexPage(SolrPageIndexer.java:216) ... 122 more
Because :
- org.ametys.odf.tree.OdfClassificationHandler._convertRawValue2LevelValue(String, String) returns the id of the reference table content instead of the domain code
- so does org.ametys.odf.tree.OdfClassificationHandler.getProgramLevelValues(Program, String)
- so does org.ametys.plugins.odfweb.repository.OdfPageHandler.getProgramLevel2Value(Page, Program)
- org.ametys.plugins.odfweb.repository.ProgramPage._computeLevelsPath() returns a path (with a '/' separator, but one of the metadata also contains a '/' as it is a content id)
- org.ametys.plugins.odfweb.repository.SecondLevelPageFactory._extractLevels(String) does its job wrong (line 77) because of this '/' char
- Fait partie de
-
ODF-1779 Empty or null code should be ignored into classification
-
- Closed
-