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

Error when editing a program whose domain does not have a code

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • 4.7.11, 4.8.0
    • 4.0.0
    • None
    • None

      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

            Unassigned Unassigned
            sprieul Simon Prieul (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: