You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Quintin Beukes <qu...@skywalk.co.za> on 2009/10/14 17:00:06 UTC

OPENEJB-1086: Transaction policies not applied for lifecycle callback interceptor methods for @Singleton

For what it's worth, I found why this is happening.

When @PostConstruct is executed, it's done so not as a business method
invocation, but rather jumps straight into the InterceptorStack.
If I were to execute this same method from outside the bean, it will
first go through SingletonContainer.invoke, which sets up the
transaction.

Maybe one should configure the transaction prior to executing the
POST_CONSTRUCT interceptors? Since the spec technically only requires
a transaction when the REQUIRED attribute is specified, though
uncomfortable, maybe one could do it only in this case?

Quintin Beukes

On Wed, Oct 14, 2009 at 1:15 PM, Jean-Louis MONTEIRO
<je...@atosorigin.com> wrote:
>
> Hi Quintin,
>
> According to the specification, it's legal to access an entitymanager in a
> @PostConstruct method.
> Basically, a singleton can do everything a stateless can do.
>
> It looks like a bug.
> Will try to reproduce it and to dig into.
>
> Jean-Louis
>
>
> Q Beukes wrote:
>>
>> Hey,
>>
>> I have an odd problem. I created a singleton bean, gave it @Startup
>> and want to initialize the database. Though, when I tried to use the
>> entity manager in the @PostConstruct method, I get the errors listed
>> at the below. This is even if I specified
>> @TransactionAttribute(TransactionAttributeType.REQUIRED), which
>> according to the spec means the transaction HAS to be started. So I
>> would think this is a bug?
>>
>> -------------------------------------------------------
>>  T E S T S
>> -------------------------------------------------------
>> Running net.kunye.platform.init.InitializeKMSPlatformTest
>> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec
>> Running net.kunye.test.TestBeanTest
>> Apache OpenEJB 3.1.2-SNAPSHOT    build: 20091009-07:14
>> http://openejb.apache.org/
>> INFO - openejb.home = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
>> INFO - openejb.base = /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb
>> INFO - Configuring Service(id=Default Security Service,
>> type=SecurityService, provider-id=Default Security Service)
>> INFO - Configuring Service(id=Default Transaction Manager,
>> type=TransactionManager, provider-id=Default Transaction Manager)
>> INFO - Configuring Service(id=jdbc_kmsPool, type=Resource,
>> provider-id=Default JDBC Database)
>> INFO - Found EjbModule in classpath:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>> INFO - Found EjbModule in classpath:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
>> INFO - Found ClientModule in classpath:
>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
>> INFO - Found EjbModule in classpath:
>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>> INFO - Found ClientModule in classpath:
>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>> INFO - Beginning load:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/classes
>> INFO - Beginning load:
>> /home/quintin/dev/kms/KMSPlatform/KMSPlatform-ejb/target/test-classes
>> INFO - Beginning load:
>> /home/mavenrepo/org/hibernate/hibernate-core/3.3.2.GA/hibernate-core-3.3.2.GA.jar
>> INFO - Beginning load:
>> /home/mavenrepo/net/kunye/UnitTesting/1.0/UnitTesting-1.0.jar
>> INFO - Beginning load:
>> /home/mavenrepo/javassist/javassist/3.4.GA/javassist-3.4.GA.jar
>> INFO - Configuring enterprise application: classpath.ear
>> INFO - Configuring Service(id=Default Singleton Container,
>> type=Container, provider-id=Default Singleton Container)
>> INFO - Auto-creating a container for bean SiteBean:
>> Container(type=SINGLETON, id=Default Singleton Container)
>> INFO - Configuring Service(id=Default Stateless Container,
>> type=Container, provider-id=Default Stateless Container)
>> INFO - Auto-creating a container for bean TestBean:
>> Container(type=STATELESS, id=Default Stateless Container)
>> INFO - Configuring PersistenceUnit(name=KMSPlatform-PU,
>> provider=org.hibernate.ejb.HibernatePersistence)
>> INFO - Auto-creating a Resource with id 'jdbc_kmsPoolNonJta' of type
>> 'DataSource for 'KMSPlatform-PU'.
>> INFO - Configuring Service(id=jdbc_kmsPoolNonJta, type=Resource,
>> provider-id=jdbc_kmsPool)
>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <jta-data-source> to
>> Resource ID 'jdbc_kmsPool' from 'jdbc/kmsPool'
>> INFO - Adjusting PersistenceUnit KMSPlatform-PU <non-jta-data-source>
>> to Resource ID 'jdbc_kmsPoolNonJta' from 'null'
>> INFO - Enterprise application "classpath.ear" loaded.
>> INFO - Assembling app: classpath.ear
>> INFO - PersistenceUnit(name=KMSPlatform-PU,
>> provider=org.hibernate.ejb.HibernatePersistence)
>> INFO - Jndi(name=SiteBeanLocal) --> Ejb(deployment-id=SiteBean)
>> INFO - Jndi(name=SiteBeanRemote) --> Ejb(deployment-id=SiteBean)
>> INFO - Jndi(name=InitializeKMSPlatformLocal) -->
>> Ejb(deployment-id=InitializeKMSPlatform)
>> INFO - Jndi(name=SpringContextBeanLocal) -->
>> Ejb(deployment-id=SpringContextBean)
>> INFO - Jndi(name=TestBeanLocal) --> Ejb(deployment-id=TestBean)
>> INFO - Jndi(name=TestBeanRemote) --> Ejb(deployment-id=TestBean)
>> INFO - Jndi(name=UnauthenticatedUserBeanLocal) -->
>> Ejb(deployment-id=UnauthenticatedUserBean)
>> INFO - Jndi(name=StandardUserBeanLocal) -->
>> Ejb(deployment-id=StandardUserBean)
>> INFO - Jndi(name=AdminBeanLocal) --> Ejb(deployment-id=AdminBean)
>> INFO - Jndi(name=LampRoomBeanLocal) --> Ejb(deployment-id=LampRoomBean)
>> INFO - Jndi(name=VdsAdminBeanLocal) --> Ejb(deployment-id=VdsAdminBean)
>> INFO - Jndi(name=PersonnelAdminBeanLocal) -->
>> Ejb(deployment-id=PersonnelAdminBean)
>> INFO - Jndi(name=LampRepairBeanLocal) -->
>> Ejb(deployment-id=LampRepairBean)
>> INFO - Jndi(name=ServerComponentsBeanLocal) -->
>> Ejb(deployment-id=ServerComponentsBean)
>> INFO - Created Ejb(deployment-id=UnauthenticatedUserBean,
>> ejb-name=UnauthenticatedUserBean, container=Default Stateless
>> Container)
>> INFO - Created Ejb(deployment-id=PersonnelAdminBean,
>> ejb-name=PersonnelAdminBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=VdsAdminBean, ejb-name=VdsAdminBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=LampRepairBean,
>> ejb-name=LampRepairBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=StandardUserBean,
>> ejb-name=StandardUserBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=LampRoomBean, ejb-name=LampRoomBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=ServerComponentsBean,
>> ejb-name=ServerComponentsBean, container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=AdminBean, ejb-name=AdminBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=TestBean, ejb-name=TestBean,
>> container=Default Stateless Container)
>> INFO - Created Ejb(deployment-id=SpringContextBean,
>> ejb-name=SpringContextBean, container=Default Singleton Container)
>> INFO - Created Ejb(deployment-id=SiteBean, ejb-name=SiteBean,
>> container=Default Singleton Container)
>> SINGLETON STARTUP
>> Created NEW Spring App Context
>> Persisting entity: net.kunye.security.auth.Role
>> ERROR - The bean instance threw a system
>> exception:javax.persistence.TransactionRequiredException
>> javax.persistence.TransactionRequiredException
>>         at
>> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>         at
>> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>         at
>> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>>         at
>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>>         at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>>         at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>         at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>         at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>         at javax.naming.InitialContext.init(InitialContext.java:223)
>>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>         at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>         at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>         at
>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>         at
>> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>         at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>         at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>         at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>         at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> INFO - Undeploying app: classpath.ear
>> ERROR - Singleton shutdown failed: InitializeKMSPlatform
>> java.lang.NullPointerException
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.freeInstance(SingletonInstanceManager.java:311)
>>         at
>> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:146)
>>         at
>> org.apache.openejb.core.singleton.SingletonContainer.undeploy(SingletonContainer.java:139)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:844)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:662)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>         at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>         at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>         at javax.naming.InitialContext.init(InitialContext.java:223)
>>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>         at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>         at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>         at
>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>         at
>> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>         at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>         at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>         at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>         at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> ERROR - Application could not be deployed:  classpath.ear
>> org.apache.openejb.OpenEJBException: Creating application failed:
>> classpath.ear: Error deploying 'InitializeKMSPlatform'.  Exception:
>> class org.apache.openejb.OpenEJBException: Singleton startup failed:
>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
>> to initialize: Singleton failed to initialize: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:666)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:449)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
>>         at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
>>         at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
>>         at
>> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
>>         at
>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
>>         at
>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
>>         at javax.naming.InitialContext.init(InitialContext.java:223)
>>         at javax.naming.InitialContext.<init>(InitialContext.java:197)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:162)
>>         at
>> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:125)
>>         at
>> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>>         at
>> org.apache.openejb.junit.model.MultiStatementExecutor.evaluate(MultiStatementExecutor.java:45)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>>         at
>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>>         at
>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>>         at
>> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>>         at
>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>>         at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>>         at
>> org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:169)
>>         at
>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>>         at
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
>>         at
>> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
>> Caused by: org.apache.openejb.OpenEJBException: Error deploying
>> 'InitializeKMSPlatform'.  Exception: class
>> org.apache.openejb.OpenEJBException: Singleton startup failed:
>> InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton failed
>> to initialize: Singleton failed to initialize: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:601)
>>         ... 41 more
>> Caused by: org.apache.openejb.OpenEJBException: Singleton startup
>> failed: InitializeKMSPlatform: javax.ejb.NoSuchEJBException: Singleton
>> failed to initialize: Singleton failed to initialize
>>         at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:133)
>>         at
>> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:598)
>>         ... 41 more
>> Caused by: org.apache.openejb.ApplicationException:
>> javax.ejb.NoSuchEJBException: Singleton failed to initialize:
>> Singleton failed to initialize
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:230)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:60)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:86)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:84)
>>         at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:96)
>>         at
>> org.apache.openejb.core.singleton.SingletonContainer.deploy(SingletonContainer.java:128)
>>         ... 42 more
>> Caused by: javax.ejb.NoSuchEJBException: Singleton failed to initialize
>>         ... 50 more
>> Caused by: javax.persistence.TransactionRequiredException
>>         at
>> org.apache.openejb.persistence.JtaEntityManager.assertTransactionActive(JtaEntityManager.java:75)
>>         at
>> org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:96)
>>         at
>> net.kunye.platform.init.InitializeKMSPlatform.initialize(InitializeKMSPlatform.java:63)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:189)
>>         at
>> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
>>         at
>> org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
>>         at
>> org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:204)
>>         ... 49 more
>> INFO - Logging in
>> INFO - Logging in
>>
>> Quintin Beukes
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Singletons-don%27t-have-transactions--tp25874366p25889173.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
>