Jetspeed 2
  1. Jetspeed 2
  2. JS2-1007

Null Pointer Exception in Page Manager File Cache

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.2.0
    • Labels:
      None

      Description

      I am seeing this error, usually on the first hit, just starting today May 12, 2009. We just recently proposed changes to the ehcache setting since TTL and TTI are 0:

      <cache name="pageFileCache"
      maxElementsInMemory="$

      {org.apache.jetspeed.ehcache.pagemanager.maxfiles}

      "
      eternal="false"
      overflowToDisk="false"
      timeToIdleSeconds="0"
      timeToLiveSeconds="0"
      memoryStoreEvictionPolicy="LFU"/>

      Im going to investigate upping these values

      java.lang.NullPointerException
      at org.apache.jetspeed.page.document.psml.FileSystemFolderHandler.refresh(FileSystemFolderHandler.java:733)
      at org.apache.jetspeed.cache.file.FileCache$1.notifyElementChanged(FileCache.java:209)
      at org.apache.jetspeed.cache.impl.EhCacheImpl$1.notifyElementUpdated(EhCacheImpl.java:146)
      at net.sf.ehcache.event.RegisteredEventListeners.notifyElementUpdated(RegisteredEventListeners.java:124)
      at net.sf.ehcache.Cache.put(Cache.java:697)
      at net.sf.ehcache.Cache.put(Cache.java:632)
      at org.apache.jetspeed.cache.impl.EhCacheImpl.put(EhCacheImpl.java:74)
      at org.apache.jetspeed.cache.file.FileCache.put(FileCache.java:172)
      at org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler.addToCache(CastorFileSystemDocumentHandler.java:681)
      at org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler.getDocument(CastorFileSystemDocumentHandler.java:654)
      at org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler.getDocument(CastorFileSystemDocumentHandler.java:158)
      at org.apache.jetspeed.page.document.psml.FileSystemFolderHandler.getFolder(FileSystemFolderHandler.java:190)
      at org.apache.jetspeed.page.document.psml.FileSystemFolderHandler.getFolder(FileSystemFolderHandler.java:128)
      at org.apache.jetspeed.om.folder.psml.FolderImpl.getAllNodes(FolderImpl.java:557)
      at org.apache.jetspeed.om.folder.psml.FolderImpl.getPageSecurity(FolderImpl.java:435)
      at org.apache.jetspeed.om.folder.psml.FolderImpl.getEffectivePageSecurity(FolderImpl.java:673)
      at org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:422)
      at org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:429)
      at org.apache.jetspeed.page.document.psml.AbstractNode.checkConstraints(AbstractNode.java:429)
      at org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkConstraints(AbstractBaseElement.java:312)
      at org.apache.jetspeed.om.page.psml.AbstractBaseElement.checkAccess(AbstractBaseElement.java:505)
      at org.apache.jetspeed.page.psml.CastorXmlPageManager.getFolder(CastorXmlPageManager.java:623)
      at org.apache.jetspeed.portalsite.view.SiteView.<init>(SiteView.java:152)
      at org.apache.jetspeed.portalsite.view.SiteView.<init>(SiteView.java:290)
      at org.apache.jetspeed.portalsite.impl.PortalSiteSessionContextImpl.getSiteView(PortalSiteSessionContextImpl.java:834)
      at org.apache.jetspeed.portalsite.impl.PortalSiteSessionContextImpl.selectRequestPage(PortalSiteSessionContextImpl.java:415)
      at org.apache.jetspeed.portalsite.impl.PortalSiteSessionContextImpl.selectRequestPage(PortalSiteSessionContextImpl.java:228)
      at org.apache.jetspeed.portalsite.impl.PortalSiteRequestContextImpl.getPage(PortalSiteRequestContextImpl.java:213)
      at org.apache.jetspeed.portalsite.impl.PortalSiteRequestContextImpl.getManagedPage(PortalSiteRequestContextImpl.java:196)
      at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:244)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:158)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:151)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:170)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:138)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
      at org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:179)
      at org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:132)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:127)
      at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
      at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:146)
      at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:225)
      at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:300)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAttackFilter.java:52)
      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:191)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
      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.coyote.http11.Http11Processor.process(Http11Processor.java:845)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:613)

        Activity

        Hide
        Randy Watler added a comment -

        Added tests to protect cache refresh/update notifications from PSML documents added to cache without parent folder set. This particular issue is probably not related to the new TTL or TTI "infinite" cache settings. It appears to be caused by concurrent page cache loading... something probably more common with multiple requests pending/synchronized on portal startup. Cache eviction could also increase the probability of this bug appearing.

        Commit SVN revision: 774468.

        Show
        Randy Watler added a comment - Added tests to protect cache refresh/update notifications from PSML documents added to cache without parent folder set. This particular issue is probably not related to the new TTL or TTI "infinite" cache settings. It appears to be caused by concurrent page cache loading... something probably more common with multiple requests pending/synchronized on portal startup. Cache eviction could also increase the probability of this bug appearing. Commit SVN revision: 774468.

          People

          • Assignee:
            Randy Watler
            Reporter:
            David Sean Taylor
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development