org.springframework.transaction.CannotCreateTransactionException: Could not open JCR session for transaction; nested exception is java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION!

Pentaho BI Platform Tracking | Tatsiana Kasiankova | 3 years ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    During investigation of the issue http://jira.pentaho.com/browse/PDI-10665 I faced up with the one more issue in AutoDoc.processRow() method. We are trying to load repository directory tree: ------------------------------------------------------------------------------------------------ data.repository = getTrans().getRepository(); if ( data.repository != null ) { data.tree = data.repository.loadRepositoryDirectoryTree(); } ------------------------------------------------------------------------------------------------ And as result there is an attempt to call StandaloneSession.getAttribute(StandaloneSession.java:75) for already destroyed session. See log below: org.springframework.transaction.CannotCreateTransactionException: Could not open JCR session for transaction; nested exception is java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! at org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager.doBegin(LocalTransactionManager.java:160) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy28.getTree(Unknown Source) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:445) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:443) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.callLogThrow(ExceptionLoggingDecorator.java:489) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:443) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:454) at org.pentaho.di.repository.pur.PurRepository.loadRepositoryFileTree(PurRepository.java:520) at org.pentaho.di.repository.pur.PurRepository.loadRepositoryDirectoryTree(PurRepository.java:528) at org.pentaho.di.trans.steps.autodoc.AutoDoc.processRow(AutoDoc.java:163) at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! at org.pentaho.platform.engine.core.system.StandaloneSession.getAttribute(StandaloneSession.java:75) at org.pentaho.platform.repository2.unified.jcr.JcrTenantUtils.getTenantedUser(JcrTenantUtils.java:96) at org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getUserId(PentahoSessionCredentialsStrategy.java:74) at org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getCredentials(PentahoSessionCredentialsStrategy.java:65) at org.pentaho.platform.repository2.unified.jcr.sejcr.CredentialsStrategySessionFactory.getSession(CredentialsStrategySessionFactory.java:337) at org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager.doBegin(LocalTransactionManager.java:120) ... 16 more This occurs because in StartExecutionTransAsUserServlet we switch PentahoHttpSession to a Standalone Session: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public void transStarted(Trans trans) throws KettleException { // Switches my PentahoHttpSession to a Standalone Session if (log.isDebug()) { log.logDebug(BaseMessages.getString(SUBCLASS_PKG, "StartExecutionTransAsUserServlet.Log.CallbackReceived")); } SecurityHelper.getInstance().becomeUser(PentahoSessionHolder.getSession().getName()); } ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- So now we have UserSession in PentahoSessionStore and in HttpSessionPentahoSessionIntegrationFilter we destroy this one: // Crucial removal of PentahoSessionHolder contents - do this before anything else. PentahoSessionHolder.removeSession(); At the same time the steps of our transformation are executing in several separate threads and when one of them (in this case it AutoDoc ) is trying to load DI repository tree, on jackrabbit level there is attempt to work with this destroyed UserSession. As result - ava.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! The steps to reproduce are the same as in http://jira.pentaho.com/browse/PDI-10665

    Pentaho BI Platform Tracking | 3 years ago | Tatsiana Kasiankova
    org.springframework.transaction.CannotCreateTransactionException: Could not open JCR session for transaction; nested exception is java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION!
  2. 0

    During investigation of the issue http://jira.pentaho.com/browse/PDI-10665 I faced up with the one more issue in AutoDoc.processRow() method. We are trying to load repository directory tree: ------------------------------------------------------------------------------------------------ data.repository = getTrans().getRepository(); if ( data.repository != null ) { data.tree = data.repository.loadRepositoryDirectoryTree(); } ------------------------------------------------------------------------------------------------ And as result there is an attempt to call StandaloneSession.getAttribute(StandaloneSession.java:75) for already destroyed session. See log below: org.springframework.transaction.CannotCreateTransactionException: Could not open JCR session for transaction; nested exception is java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! at org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager.doBegin(LocalTransactionManager.java:160) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy28.getTree(Unknown Source) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:445) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:443) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.callLogThrow(ExceptionLoggingDecorator.java:489) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:443) at org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:454) at org.pentaho.di.repository.pur.PurRepository.loadRepositoryFileTree(PurRepository.java:520) at org.pentaho.di.repository.pur.PurRepository.loadRepositoryDirectoryTree(PurRepository.java:528) at org.pentaho.di.trans.steps.autodoc.AutoDoc.processRow(AutoDoc.java:163) at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! at org.pentaho.platform.engine.core.system.StandaloneSession.getAttribute(StandaloneSession.java:75) at org.pentaho.platform.repository2.unified.jcr.JcrTenantUtils.getTenantedUser(JcrTenantUtils.java:96) at org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getUserId(PentahoSessionCredentialsStrategy.java:74) at org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getCredentials(PentahoSessionCredentialsStrategy.java:65) at org.pentaho.platform.repository2.unified.jcr.sejcr.CredentialsStrategySessionFactory.getSession(CredentialsStrategySessionFactory.java:337) at org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager.doBegin(LocalTransactionManager.java:120) ... 16 more This occurs because in StartExecutionTransAsUserServlet we switch PentahoHttpSession to a Standalone Session: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- public void transStarted(Trans trans) throws KettleException { // Switches my PentahoHttpSession to a Standalone Session if (log.isDebug()) { log.logDebug(BaseMessages.getString(SUBCLASS_PKG, "StartExecutionTransAsUserServlet.Log.CallbackReceived")); } SecurityHelper.getInstance().becomeUser(PentahoSessionHolder.getSession().getName()); } ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- So now we have UserSession in PentahoSessionStore and in HttpSessionPentahoSessionIntegrationFilter we destroy this one: // Crucial removal of PentahoSessionHolder contents - do this before anything else. PentahoSessionHolder.removeSession(); At the same time the steps of our transformation are executing in several separate threads and when one of them (in this case it AutoDoc ) is trying to load DI repository tree, on jackrabbit level there is attempt to work with this destroyed UserSession. As result - ava.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION! The steps to reproduce are the same as in http://jira.pentaho.com/browse/PDI-10665

    Pentaho BI Platform Tracking | 3 years ago | Tatsiana Kasiankova
    org.springframework.transaction.CannotCreateTransactionException: Could not open JCR session for transaction; nested exception is java.lang.IllegalStateException: StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION!
  3. 0

    How can I cope with "IllegalStateException: BeanFactory not initialized or already closed"?

    Stack Overflow | 6 years ago | user569825
    java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    issues in spring petclinic applicaiton

    Stack Overflow | 4 years ago | user2216702
    java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - c all 'refresh' before multicasting events via the context: Root WebApplicationCon text: startup date [Wed Mar 27 11:31:56 CDT 2013]; root of context hierarchy at org.springframework.context.support.AbstractApplic ationContext.getApp licationEventMulticaster(AbstractApplicationContex t.java:347) [spring-context-3. 2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.context.support.AbstractApplic ationContext.publis hEvent(AbstractApplicationContext.java:334) [spring-context-3.2.2.RELEASE.jar:3. 2.2.RELEASE] at org.springframework.context.support.AbstractApplic ationContext.doClos e(AbstractApplicationContext.java:1049) [spring-context-3.2.2.RELEASE.jar:3.2.2. RELEASE] at org.springframework.context.support.AbstractApplic ationContext.close( AbstractApplicationContext.java:1010) [spring-context-3.2.2.RELEASE.jar:3.2.2.RE LEASE] at org.springframework.web.context.ContextLoader.clos eWebApplicationCont ext(ContextLoader.java:558) [spring-web-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.springframework.web.context.ContextLoaderListe ner.contextDestroye d(ContextLoaderListener.java:143) [spring-web-3.2.2.RELEASE.jar:3.2.2.RELEASE] at org.apache.catalina.core.StandardContext.listenerS top(StandardContext .java:4831) [tomcat-embed-core-7.0.30.jar:7.0.30] at org.apache.catalina.core.StandardContext.stopInter nal(StandardContext .java:5478) [tomcat-embed-core-7.0.30.jar:7.0.30] at org.apache.catalina.util.LifecycleBase.stop(Lifecy cleBase.java:232) [ tomcat-embed-core-7.0.30.jar:7.0.30] at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:160) [tomcat-embed-core-7.0.30.jar:7.0.30] at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase. java:1559) [tomcat-embed-core-7.0.30.jar:7.0.30] at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase. java:1549) [tomcat-embed-core-7.0.30.jar:7.0.30] at java.util.concurrent.FutureTask$Sync.innerRun(Futu reTask.java:303) [n a:1.6.0_20] at java.util.concurrent.FutureTask.run(FutureTask.jav a:138) [na:1.6.0_20 ] at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(ThreadPoolExec utor.java:886) [na:1.6.0_20] at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor .java:908) [na:1.6.0_20]
  6. 0

    Porting project JBoss AS 6 to JBoss AS 7

    Stack Overflow | 5 years ago | Rounak
    java.lang.IllegalStateException: Application was not properly initialize d at startup, could not find Factory: javax.faces.application.ApplicationFactory at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.jav a:894) [jsf-api.jar:] at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:319) [jsf-api .jar:] at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext .java:112) [jsf-impl.jar:] at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureList ener.java:325) [jsf-impl.jar:] at org.apache.catalina.core.StandardContext.listenerStop(StandardContext .java:3465) [jbossweb-7.0.1.Final.jar:7.0.2.Final] at org.apache.catalina.core.StandardContext.stop(StandardContext.java:39 70) [jbossweb-7.0.1.Final.jar:7.0.2.Final] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3 888) [jbossweb-7.0.1.Final.jar:7.0.2.Final] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentS ervice.java:70) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(Se rviceControllerImpl.java:1824) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceCont rollerImpl.java:1759) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1110) [:1.7.0] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:603) [:1.7.0]

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalStateException

      StandaloneSession.ERROR_0001 - !StandaloneSession.ERROR_0001_ACCESSING_DESTROYED_SESSION!

      at org.pentaho.platform.engine.core.system.StandaloneSession.getAttribute()
    2. org.pentaho.platform
      CredentialsStrategySessionFactory.getSession
      1. org.pentaho.platform.engine.core.system.StandaloneSession.getAttribute(StandaloneSession.java:75)
      2. org.pentaho.platform.repository2.unified.jcr.JcrTenantUtils.getTenantedUser(JcrTenantUtils.java:96)
      3. org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getUserId(PentahoSessionCredentialsStrategy.java:74)
      4. org.pentaho.platform.repository2.unified.jcr.sejcr.PentahoSessionCredentialsStrategy.getCredentials(PentahoSessionCredentialsStrategy.java:65)
      5. org.pentaho.platform.repository2.unified.jcr.sejcr.CredentialsStrategySessionFactory.getSession(CredentialsStrategySessionFactory.java:337)
      5 frames
    3. org.springframework.extensions
      LocalTransactionManager.doBegin
      1. org.springframework.extensions.jcr.jackrabbit.LocalTransactionManager.doBegin(LocalTransactionManager.java:120)
      1 frame
    4. Spring Tx
      TransactionInterceptor.invoke
      1. org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
      2. org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
      3. org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
      3 frames
    5. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      2. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      2 frames
    6. com.sun.proxy
      $Proxy28.getTree
      1. com.sun.proxy.$Proxy28.getTree(Unknown Source)
      1 frame
    7. org.pentaho.platform
      ExceptionLoggingDecorator.getTree
      1. org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:445)
      2. org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator$41.call(ExceptionLoggingDecorator.java:443)
      3. org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.callLogThrow(ExceptionLoggingDecorator.java:489)
      4. org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:443)
      5. org.pentaho.platform.repository2.unified.ExceptionLoggingDecorator.getTree(ExceptionLoggingDecorator.java:454)
      5 frames
    8. org.pentaho.di
      RunThread.run
      1. org.pentaho.di.repository.pur.PurRepository.loadRepositoryFileTree(PurRepository.java:520)
      2. org.pentaho.di.repository.pur.PurRepository.loadRepositoryDirectoryTree(PurRepository.java:528)
      3. org.pentaho.di.trans.steps.autodoc.AutoDoc.processRow(AutoDoc.java:163)
      4. org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
      4 frames
    9. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:744)
      1 frame