[MAGNOLIA-5836] AreaElement : Can't autocreate area 'null' Created: 18/Jul/14  Updated: 13/Dec/18  Resolved: 14/Dec/16

Status: Closed
Project: Magnolia
Component/s: templating
Affects Version/s: 5.2.6, 5.3.1, 5.4.9
Fix Version/s: 5.4.11, 5.5.1

Type: Bug Priority: Neutral
Reporter: Philip Mundt Assignee: Mikaël Geljić
Resolution: Fixed Votes: 0
Labels: support
Remaining Estimate: 0d
Time Spent: 3d 5h
Original Estimate: 3d

Issue Links:
causality
relation
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:
Sprint: Saigon 74
Story Points: 5

 Description   

This error will be thrown when rendering a new page with a specific template (i.e. FAQ) for the first time:

ERROR info.magnolia.templating.elements.AreaElement     : Can't autocreate area 'null'.
javax.jcr.PathNotFoundException: footer
    at org.apache.jackrabbit.core.NodeImpl$8.perform(NodeImpl.java:2163)
    at org.apache.jackrabbit.core.NodeImpl$8.perform(NodeImpl.java:2157)
    at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
    at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
    at org.apache.jackrabbit.core.NodeImpl.getNode(NodeImpl.java:2157)
    at info.magnolia.jcr.wrapper.DelegateNodeWrapper.getNode(DelegateNodeWrapper.java:197)
    at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.getNode(ContentDecoratorNodeWrapper.java:120)
    at info.magnolia.jcr.wrapper.DelegateNodeWrapper.getNode(DelegateNodeWrapper.java:197)
    at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.getNode(ContentDecoratorNodeWrapper.java:120)
    at info.magnolia.jcr.wrapper.DelegateNodeWrapper.getNode(DelegateNodeWrapper.java:197)
    at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.getNode(ContentDecoratorNodeWrapper.java:120)
    at info.magnolia.jcr.wrapper.DelegateNodeWrapper.getNode(DelegateNodeWrapper.java:197)
    at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.getNode(ContentDecoratorNodeWrapper.java:120)
    at info.magnolia.jcr.wrapper.DelegateNodeWrapper.getNode(DelegateNodeWrapper.java:197)
    at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.getNode(ContentDecoratorNodeWrapper.java:120)
    at info.magnolia.templating.elements.AreaElement.createNewAreaNode(AreaElement.java:247)
    at info.magnolia.templating.elements.AreaElement.tryToCreateAreaNode(AreaElement.java:351)
    at info.magnolia.templating.elements.AreaElement.begin(AreaElement.java:171)
    at info.magnolia.templating.freemarker.AbstractDirective.execute(AbstractDirective.java:92)
    at freemarker.core.Environment.visit(Environment.java:274)
    at freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)
    at freemarker.core.Environment.visit(Environment.java:221)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:221)
    at freemarker.core.Environment.process(Environment.java:199)
    at freemarker.template.Template.process(Template.java:237)
    at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:153)
    at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:96)
    at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:151)
    at info.magnolia.module.templatingkit.renderers.STKRenderer.render(STKRenderer.java:95)
    at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:106)
    at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$bade892.render(<generated>)
    at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:205)
    at info.magnolia.rendering.engine.RenderingFilter.handleTemplateRequest(RenderingFilter.java:139)
    at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:91)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:101)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:103)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:100)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:74)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:68)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
    at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
    at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:73)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.multisite.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:83)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:93)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.module.templatingkit.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:112)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:106)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:82)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:104)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:56)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
    at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:89)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.module.devicedetection.filter.DeviceDetectionFilter.doFilter(DeviceDetectionFilter.java:71)
    at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:58)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:103)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:129)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:80)
    at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
    at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:89)
    at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:106)
    at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:66)
    at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:107)
    at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:93)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:695)

To reproduce:

  1. Go to PagesApp
  2. Create a new subpage under /demo-features
  3. Select template FAQ
  4. Preview page and see errors (javax.jcr.PathNotFoundException) in log for these areas:
    1. footer
    2. base
    3. promos
    4. content
    5. metaNavigation


 Comments   
Comment by Milan Divilek [ 22/Apr/16 ]

Similar error happens also with "Show version" action if page was not visited before creation of version.
Reproduce:
1. Add new root page with template "Travel home", but do NOT preview or visit it
2. Publish the page -> version is created
3. Try to show version -> Magnolia will try to autogenerate areas/components, but version node is read only and whole stacktrace is logged

2016-04-22 09:11:43,678 ERROR info.magnolia.templating.elements.AreaElement     : Can't autocreate area 'null'.
javax.jcr.nodetype.ConstraintViolationException: Unable to perform operation. Node is protected.
	at org.apache.jackrabbit.core.ItemValidator.checkCondition(ItemValidator.java:276)
	at org.apache.jackrabbit.core.ItemValidator.checkModify(ItemValidator.java:248)
	at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:1315)
	at org.apache.jackrabbit.core.session.AddNodeOperation.perform(AddNodeOperation.java:111)
	at org.apache.jackrabbit.core.session.AddNodeOperation.perform(AddNodeOperation.java:37)
	at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
	at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
	at org.apache.jackrabbit.core.NodeImpl.addNodeWithUuid(NodeImpl.java:1818)
	at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:1778)
	at info.magnolia.jcr.wrapper.DelegateNodeWrapper.addNode(DelegateNodeWrapper.java:129)
	at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.addNode(ContentDecoratorNodeWrapper.java:131)
	at info.magnolia.jcr.wrapper.DelegateNodeWrapper.addNode(DelegateNodeWrapper.java:129)
	at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.addNode(ContentDecoratorNodeWrapper.java:131)
	at info.magnolia.jcr.wrapper.DelegateNodeWrapper.addNode(DelegateNodeWrapper.java:129)
	at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.addNode(ContentDecoratorNodeWrapper.java:131)
	at info.magnolia.jcr.wrapper.MgnlPropertySettingNodeWrapper.addNode(MgnlPropertySettingNodeWrapper.java:210)
	at info.magnolia.jcr.wrapper.DelegateNodeWrapper.addNode(DelegateNodeWrapper.java:129)
	at info.magnolia.jcr.decoration.ContentDecoratorNodeWrapper.addNode(ContentDecoratorNodeWrapper.java:131)
	at info.magnolia.audit.MgnlAuditLoggingContentDecoratorNodeWrapper.addNode(MgnlAuditLoggingContentDecoratorNodeWrapper.java:84)
	at info.magnolia.jcr.util.NodeUtil.createPath(NodeUtil.java:636)
	at info.magnolia.jcr.util.NodeUtil.createPath(NodeUtil.java:613)
	at info.magnolia.templating.elements.AreaElement$1.doExec(AreaElement.java:239)
	at info.magnolia.context.MgnlContext$LockingOp.exec(MgnlContext.java:568)
	at info.magnolia.context.MgnlContext$LockingOp.exec(MgnlContext.java:444)
	at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:392)
	at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:377)
	at info.magnolia.templating.elements.AreaElement.createNewAreaNode(AreaElement.java:234)
	at info.magnolia.templating.elements.AreaElement.tryToCreateAreaNode(AreaElement.java:357)
	at info.magnolia.templating.elements.AreaElement.begin(AreaElement.java:169)
	at info.magnolia.templating.freemarker.AbstractDirective.execute(AbstractDirective.java:93)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:100)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.MixedContent.accept(MixedContent.java:57)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.Environment.process(Environment.java:235)
	at freemarker.template.Template.process(Template.java:262)
	at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:156)
	at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:95)
	at info.magnolia.rendering.renderer.AbstractRenderer.render(AbstractRenderer.java:164)
	at info.magnolia.module.site.renderer.SiteAwareRendererWrapper.render(SiteAwareRendererWrapper.java:92)
	at info.magnolia.rendering.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:118)
	at info.magnolia.rendering.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$8d865f9c.render(<generated>)
	at info.magnolia.rendering.engine.RenderingFilter.render(RenderingFilter.java:195)
	at info.magnolia.rendering.engine.RenderingFilter.handleTemplateRequest(RenderingFilter.java:140)
	at info.magnolia.rendering.engine.RenderingFilter.doFilter(RenderingFilter.java:94)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.rendering.model.ModelExecutionFilter.doFilter(ModelExecutionFilter.java:109)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:100)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:108)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:74)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:69)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
	at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67)
	at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:174)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:74)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:84)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:79)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
	at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:87)
	at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:148)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
	at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65)
	at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
	at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
	at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108)
	at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:94)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Comment by Ngoc Nguyenthanh [ 23/Nov/16 ]

Here is a long time ago since the ticket has been submitted. The PathNotFoundException is not happen anymore.
But the issue with "Show version" that Milan mentioned above is still there.
The root cause is:

  • The render doesn't triggered to create area node for non optional areas when user doesn't visit the page for the first time AreaElement#begin.
  • When user view a version of the page, the rendering system is trying to save the versioned node which is protected and can not be modified.
  • The issue happens only when user view the page. So that to possible solution for this case is treat as a non-editable area by return false when resolve createAreaNode variable.
    private Boolean resolveCreateAreaNode() {
        try {
            return currentContent().getDefinition().isProtected() ? Boolean.FALSE : createAreaNode != null ? createAreaNode : areaDefinition != null && areaDefinition.getCreateAreaNode() != null ? areaDefinition.getCreateAreaNode() : Boolean.TRUE;
        } catch (RepositoryException e) {
            return false;
        }
    }
Comment by Mikaël Geljić [ 14/Dec/16 ]

Checking if node is protected was the way to go, but please not in #resolveCreateAreaNode—this determines whether or not area has its own node, so changing the behavior here impacts the whole rendering. Auto-creation and auto-generation of area nodes happens in #tryToCreateAreaNode.

Comment by Simon Arame [ 12/Dec/18 ]

I now see the committed fix ( https://jira.magnolia-cms.com/browse/MAGNOLIA-5836?devStatusDetailDialog=repository )

which marked this issue as closed in version 5.4.11. However, I still have this issue in magnolia-templating 5.4.16. It seems that the session refresh called in AreaElement:250

249: // JR will force refresh, some other JCRs might not
250: parentNode.getSession().refresh(true);

does not operate on the part of session that has the newly created area.

In fact, whence an area does not exists in a page but is available in site definition and included in the rendering freemarker and that this area is of type 'single' and when the parent page has that same area filled with a component that is "inheritable=true" by the standard info.magnolia.rendering.template.configured.FilteredInheritancePredicate class, then, we get the same exception as when the area is "protected", namely the javax.jcr.PathNotFoundException.

 

I do not have account access to fork the 5.4.XX branch but let me suggest this possible hint to a solution:

Since the session.save() is called on the newly created area in AreaElement at line number 240 inside the anonymous MgnlContext.LockingOp

240: newAreaNode.getSession().save();

We could maybe instead, call this save method on the parent node's session: 

240*: parentNodeInSystemSession.getSession().save()

 

In any case, the second GET request to that type of page gets the correct result because then the inherited component has its parent 'single' area created.

Comment by Mikaël Geljić [ 13/Dec/18 ]

Hi aramesi,

Thanks a lot for the detailed findings! Judging from the fix, it seems it only addressed the ConstraintViolation, not the original PathNotFound trace attached to the ticket. That couldn't be reproduced at the time. I'd be happy if we found a way to get your contribution there.

Re: target branch, the AreaElement is still pretty much the same in 6.0 / on master branch. I would suggest we attempt to fix it there first, and see later for backports. (you may fork from our main.pub repository - https://git.magnolia-cms.com/projects/PLATFORM/repos/main.pub). Mind that Magnolia 5.4 has just become EOL though.

Cheers,
Mika

Generated at Mon Feb 12 04:08:50 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.