[MAGNOLIA-2386] sometimes the JCR access manager is not initialized Created: 19/Sep/08  Updated: 14/Oct/12  Resolved: 14/Oct/12

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 3.5.8
Fix Version/s: 4.5

Type: Bug Priority: Minor
Reporter: Philippe Marschall Assignee: Jan Haderka
Resolution: Obsolete Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Magnolia 3.5.8, Java 1.6.0_04, Tomcat 6,CentOS 4.5


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:

 Description   

Form time to time we get the following stack trace in our logs:

java.lang.IllegalStateException: not initialized
        at org.apache.jackrabbit.core.security.SimpleAccessManager.isGranted(SimpleAccessManager.java:116)
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:321)
        at org.apache.jackrabbit.core.NodeImpl.getProperty(NodeImpl.java:2579)
        at info.magnolia.cms.core.DefaultNodeData.init(DefaultNodeData.java:207)
        at info.magnolia.cms.core.DefaultNodeData.<init>(DefaultNodeData.java:100)
        at info.magnolia.cms.core.DefaultContent.getNodeData(DefaultContent.java:267)
        at info.magnolia.cms.security.MgnlUser.getLanguage(MgnlUser.java:325)
        at info.magnolia.context.UserContextImpl.getLocale(UserContextImpl.java:59)
        at info.magnolia.context.MgnlContext.getLocale(MgnlContext.java:107)
        at info.magnolia.cms.core.AggregationState.getLocale(AggregationState.java:176)
        at ch.netcetera.swccore.magnolia.tags.Functions.getLocale(Functions.java:387)
        at ch.netcetera.swccore.magnolia.filters.BaseFilter.setLanguage(BaseFilter.java:78)
        at ch.netcetera.swccore.magnolia.filters.UrlToLanguageFilter.doFilter(UrlToLanguageFilter.java:50)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at ch.netcetera.swccore.magnolia.filters.DisableBrowserCacheFilter.doFilter(DisableBrowserCacheFilter.java:135)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at ch.netcetera.swccore.magnolia.filters.ForwardFilter.doFilter(ForwardFilter.java:49)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at ch.netcetera.swccore.magnolia.filters.AddExtensionFilter.doFilter(AddExtensionFilter.java:52)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:115)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
        at ch.netcetera.swccore.magnolia.filters.MappedDiagnosticContextFilter.doFilter(MappedDiagnosticContextFilter.java:155)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:73)
        at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:84)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:60)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:81)
        at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:76)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:54)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:73)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:72)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:71)
        at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
        at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:98)
        at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:199)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:619)

A short summary of what is happening

  1. AggregationState.getLocale is called which ends up calling
  2. MgnlUser.getLanguage which ends up calling
  3. NodeImpl.getProperty which encounters a not initialized SimpleAccessManager


 Comments   
Comment by Jan Haderka [ 19/Sep/08 ]

Form time to time we get the following stack trace in our logs:

Do you please have some more insight on when this happens? Is it possible that users session had timed out?

Comment by Magnolia International [ 24/Sep/08 ]

Ism't there an error or warning in the logs prior to this exception ?

Comment by Philippe Marschall [ 14/Oct/08 ]

Sorry I didn't reply earlier.

A session timeout is unlikely because we had a request from the same user 8 minutes earlier and we use the default Tomcat session timeout (30 min AFAIK).

There are no prior warnings or errors in the log.

This happens very rarely in this case the access pattern was probably something like this:

  • we have a custom servlet in /server/filters/servlets, the client made some request to it and it threw an internal exception
  • we have a code 500 error page defined in the web.xml which is an other servlet under /server/filters/servlets
  • the servlet container does a forward to this servlet
  • a servlet filter before this servlet does
    MgnlContext.getAggregationState().getLocale()

    which throws the exception

I'll check if I can find other cases.

Comment by Jan Haderka [ 14/Oct/12 ]

As of Magnolia 4.5, SimpleAccessManager is no longer used.

Generated at Mon Feb 12 03:36:13 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.