-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
None
-
-
Empty show more show less
-
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
- supersedes
-
MGNLEESOLR-78 IllegalStateException is thrown when indexing Assets
- Closed