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

SiteProvider should fallback to default site, when outside WebContext

XMLWordPrintable

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

      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)
      

        Acceptance criteria

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

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD

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