Uploaded image for project: 'Magnolia Site Module'
  1. Magnolia Site Module
  2. MGNLSITE-35

SiteProvider should fallback to default site, when outside WebContext

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 1.0.3
    • None
    • None
    • Saigon 15, Basel 16
    • 5

    Description

      SiteI18nContentSupport works only in WebContext. This is because info.magnolia.module.site.provider.SiteProvider is bound to info.magnolia.module.site.ExtendedAggregationState and aggregation state can be set only in WebContext.

      This is problem for example with Observation or Scheduler which are working out of WebContext.

      Use case:
      In event listener (Observation) I get asset by using AssetProvider. JcrAssetProvider wraps asset node into I18nNodeWrapper. So then for example info.magnolia.dam.api.Asset#getTitle or info.magnolia.dam.api.Asset#getContentStream methods will fail with java.lang.IllegalStateException.

      Exception in thread "Thread-234" java.lang.IllegalStateException: Expected an instance of [info.magnolia.module.site.ExtendedAggregationState] for the [info.magnolia.cms.core.AggregationState]
      	at info.magnolia.module.site.provider.SiteProvider.get(SiteProvider.java:67)
      	at info.magnolia.module.site.i18n.SiteI18nContentSupport.getI18nContentSupport(SiteI18nContentSupport.java:69)
      	at info.magnolia.module.site.i18n.SiteI18nContentSupport.getProperty(SiteI18nContentSupport.java:124)
      	at info.magnolia.module.site.i18n.SiteI18nContentSupport$$EnhancerByCGLIB$$317c544e.getProperty(<generated>)
      	at info.magnolia.jcr.wrapper.I18nNodeWrapper.getProperty(I18nNodeWrapper.java:65)
      	at info.magnolia.dam.jcr.JcrAsset.getContentStream(JcrAsset.java:146)
      	at info.magnolia.search.solrsearchprovider.logic.indexer.SolrIndexerImpl.pull(SolrIndexerImpl.java:104)
      	at info.magnolia.search.solrsearchprovider.logic.indexer.SolrIndexerImpl.addUpdate(SolrIndexerImpl.java:65)
      	at info.magnolia.search.solrsearchprovider.logic.indexer.BasicSolrIndexService.index(BasicSolrIndexService.java:73)
      	at info.magnolia.module.indexer.DataIndexer.init(DataIndexer.java:90)
      	at info.magnolia.module.indexer.DataIndexerFactory.init(DataIndexerFactory.java:59)
      	at info.magnolia.module.indexer.ContentIndexerModule.start(ContentIndexerModule.java:73)
      	at info.magnolia.module.ModuleManagerImpl.startModule(ModuleManagerImpl.java:402)
      	at info.magnolia.module.ModuleManagerImpl$2$1.doExec(ModuleManagerImpl.java:361)
      	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:421)
      	at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:418)
      	at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:392)
      	at info.magnolia.module.ModuleManagerImpl$2.onEvent(ModuleManagerImpl.java:356)
      	at info.magnolia.cms.util.ObservationUtil$ObservationBasedDelayedExecutor$1.run(ObservationUtil.java:253)
      	at info.magnolia.cms.util.DelayedExecutor$RunnableWrapper.run(DelayedExecutor.java:103)
      	at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(Unknown Source)
      	at java.lang.Thread.run(Thread.java:745)
      

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

                sang.ngo Sang Ngo Huu
                mdivilek Milan Divilek
                Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Checklists

                    Bug DoR
                    Task DoD

                    Time Tracking

                      Estimated:
                      Original Estimate - 2d Original Estimate - 2d
                      2d
                      Remaining:
                      Remaining Estimate - 0d
                      0d
                      Logged:
                      Time Spent - 2.5d
                      2.5d