On Jan 20, 2009, at 2:54 AM, Olivier THIERRY wrote:

Hi,

I use Open EJB to run TestNG unit tests in a Maven project. This
project contains many Seam components. All of them are EJB3 stateful
session beans (conversation scoped) and use extended persistence
context (same persistence unit everywhere). All of these Seam
components work perfect ... except one ! And I can't find any
difference with other ones ! The problem occurs only with Open EJB
3.1, but it works well on Open EJB 3.0 or JBoss 4.2.0, so I think it
is probably a bug with Open EJB 3.1.

Hi Olivier,

I suspect this is related to the extended persistence context issue that JimO is seeing, albeit a different manifestation of it. I've been trying to track it down as a 3.1.1 is right around the corner and this is definitely one we want fixed.

Just wanted to get a response to you so you know the issue is being looked at.

-David




Here is the test I run :

   public void testLoadReason()  throws java.lang.Exception
   {
                new ComponentTest() {
                        public void testComponents() throws java.lang.Exception 
{
                                ReasonFacadeServiceLocal service =  
(ReasonFacadeServiceLocal)
getInstance("reasonFacadeService");
                                VOReason reason = 
service.loadReason("REASON_1");
                                assert reason != null;
                                assert reason.getId() != null;
                                assert "REASON_1".equals(reason.getCode());
                        }
                }.run();
   }

And here is the stack trace I get :

testLoadReason (t4.core.commons.reason.facade.test.ReasonFacadeServiceTest)
Time elapsed: 0.062 sec  <<< FAILURE!
t4.core.commons.reason.facade.ReasonFacadeServiceException: Error
performing 't4 .core .commons.reason.facade.ReasonFacadeService.loadReason(java.lang.String
code)' --> javax.ejb.EJBTransactionRolledbackException: The
transaction has been marked rollback only because the bean encountered
a non-application exception :org.jboss.seam.InstantiationException :
Could not instantiate Seam component: processDao
at t4 .core .commons .reason .facade .ReasonFacadeServiceBase.loadReason(ReasonFacadeServiceBase.java:711)
        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:585)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext $Invocation.invoke(ReflectionInvocationContext.java:158) at org .apache .openejb .core .interceptor .ReflectionInvocationContext .proceed(ReflectionInvocationContext.java:141) at org .jboss .seam .intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:44) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 56) at org .jboss .seam .transaction .RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .core .MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java: 44) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .persistence .EntityManagerProxyInterceptor .aroundInvoke(EntityManagerProxyInterceptor.java:29) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .persistence .HibernateSessionProxyInterceptor .aroundInvoke(HibernateSessionProxyInterceptor.java:31) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept .SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
        at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext $Invocation.invoke(ReflectionInvocationContext.java:158) at org .apache .openejb .core .interceptor .ReflectionInvocationContext .proceed(ReflectionInvocationContext.java:141) at org .apache .openejb .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org .apache .openejb .core .stateful.StatefulContainer.businessMethod(StatefulContainer.java:490) at org .apache .openejb .core.stateful.StatefulContainer.invoke(StatefulContainer.java:267) at org .apache .openejb .core .ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java: 217) at org .apache .openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
        at $Proxy144.loadReason(Unknown Source)
        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:585)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org .jboss .seam .intercept.RootInvocationContext.proceed(RootInvocationContext.java: 31) at org.jboss.seam.intercept.ClientSideInterceptor $1.proceed(ClientSideInterceptor.java:76) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 56) at org .jboss .seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:43) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54) at org.javassist.tmp.java.lang.Object_$ $_javassist_35.loadReason(Object_$$_javassist_35.java) at t4.core.commons.reason.facade.test.ReasonFacadeServiceTest $11.testComponents(ReasonFacadeServiceTest.java:428) at org.jboss.seam.mock.AbstractSeamTest $ComponentTest.run(AbstractSeamTest.java:162) at t4 .core .commons .reason .facade .test .ReasonFacadeServiceTest.testLoadReason(ReasonFacadeServiceTest.java: 422) Caused by: org .apache.openejb.persistence.EntityManagerAlreadyRegisteredException:
Another entity manager is already registered for this persistence unit
at org.apache.openejb.persistence.JtaEntityManagerRegistry $ExtendedRegistry.addEntityManagers(JtaEntityManagerRegistry.java:191) at org.apache.openejb.persistence.JtaEntityManagerRegistry $ExtendedRegistry.access$100(JtaEntityManagerRegistry.java:169) at org .apache .openejb .persistence .JtaEntityManagerRegistry .addEntityManagers(JtaEntityManagerRegistry.java:129) at org .apache .openejb .core .stateful.StatefulContainer.createEJBObject(StatefulContainer.java: 288) at org .apache .openejb .core.stateful.StatefulContainer.invoke(StatefulContainer.java:263) at org .apache .openejb .core.ivm.EjbHomeProxyHandler.create(EjbHomeProxyHandler.java:270) at org .apache .openejb .core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandler.java:161) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
        at $Proxy78.create(Unknown Source)
at org .apache .openejb .core .ivm .naming.BusinessLocalReference.getObject(BusinessLocalReference.java: 33) at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java: 150) at org .apache .openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java: 115)
        at javax.naming.InitialContext.lookup(InitialContext.java:351)
at org.jboss.seam.Component.instantiateSessionBean(Component.java: 1367)
        at org.jboss.seam.Component.instantiate(Component.java:1331)
        at org.jboss.seam.Component.newInstance(Component.java:2084)
        at org.jboss.seam.Component.getInstance(Component.java:1988)
        at org.jboss.seam.Component.getInstance(Component.java:1950)
        at org.jboss.seam.Component.getInstance(Component.java:1944)
at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java: 2311)
        at org.jboss.seam.Component.getValueToInject(Component.java:2263)
        at org.jboss.seam.Component.injectAttributes(Component.java:1703)
        at org.jboss.seam.Component.inject(Component.java:1521)
at org .jboss .seam .core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .core .MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java: 44) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .persistence .EntityManagerProxyInterceptor .aroundInvoke(EntityManagerProxyInterceptor.java:29) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org .jboss .seam .persistence .HibernateSessionProxyInterceptor .aroundInvoke(HibernateSessionProxyInterceptor.java:31) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept .SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
        at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun .reflect .DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.openejb.core.interceptor.ReflectionInvocationContext $Invocation.invoke(ReflectionInvocationContext.java:158) at org .apache .openejb .core .interceptor .ReflectionInvocationContext .proceed(ReflectionInvocationContext.java:141) at org .apache .openejb .core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org .apache .openejb .core .stateful.StatefulContainer.businessMethod(StatefulContainer.java:490) at org .apache .openejb .core.stateful.StatefulContainer.invoke(StatefulContainer.java:267) at org .apache .openejb .core .ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java: 217) at org .apache .openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
        at $Proxy147.toVOReason(Unknown Source)
        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:585)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org .jboss .seam .intercept.RootInvocationContext.proceed(RootInvocationContext.java: 31) at org.jboss.seam.intercept.ClientSideInterceptor $1.proceed(ClientSideInterceptor.java:76) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 56) at org .jboss .seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:43) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54) at org.javassist.tmp.java.lang.Object_$ $_javassist_38.toVOReason(Object_$$_javassist_38.java) at t4 .core .commons .reason .facade .ReasonFacadeServiceBean .handleLoadReason(ReasonFacadeServiceBean.java:395) at t4 .core .commons .reason .facade .ReasonFacadeServiceBase.loadReason(ReasonFacadeServiceBase.java:703)
        ... 77 more

So it looks like a problem with entity manager. The
reasonFacadeService Seam component injects reasonInternalService and
reasonTransformer Seam components. The reasonTransformer component
itself injects a processDao component, which itself injecte
entityManager. And that's where the exception seems to occur ...

ProcessDao component injects entity manager this way :

   @javax.persistence.PersistenceContext(unitName = "t4Seam", type =
javax.persistence.PersistenceContextType.EXTENDED)
   protected javax.persistence.EntityManager emanager;

And persistence unit is configured this way :

<persistence
   xmlns="http://java.sun.com/xml/ns/persistence";
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";
   version="1.0">
   <persistence-unit name="t4Seam">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>java:/jdbc/t4Seam</jta-data-source>
       <jar-file>../test-classes/lib/t4-core-utils-core.jar</jar-file>
                <mapping-file>META-INF/orm-commons.xml</mapping-file>
                <mapping-file>META-INF/orm-utils.xml</mapping-file>
       <properties>
           <property name="hibernate.hbm2ddl.auto" value="update"/>
           <property name="hibernate.show_sql" value="false"/>
           <property name="hibernate.jdbc.batch_size" value="0"/>
       </properties>
   </persistence-unit>
</persistence>

I also noted that calling the processDao in my tests with the following line ...

   ProcessDao processDao = (ProcessDao) getInstance("processDao");

... caused the tests to run successful. But then I have this strange
stack trace on System.out :

ERROR - Passivation failed
java.io.NotSerializableException:
org.apache.openejb.persistence.JtaEntityManager
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1081) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache.openejb.util.PojoSerialization.write(PojoSerialization.java: 134) at org .apache .openejb.util.PojoSerialization.writeObject(PojoSerialization.java:65)
        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:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1339) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache .openejb .core.stateful.SimplePassivater.passivate(SimplePassivater.java:70) at org .apache .openejb .core.stateful.SimplePassivater.passivate(SimplePassivater.java:84) at org .apache .openejb.core.stateful.SimpleCache.storeEntries(SimpleCache.java:467) at org .apache .openejb.core.stateful.SimpleCache.processLRU(SimpleCache.java:408) at org .apache.openejb.core.stateful.SimpleCache.checkIn(SimpleCache.java: 239) at org .apache .openejb .core .stateful.StatefulContainer.releaseInstance(StatefulContainer.java: 636) at org.apache.openejb.core.stateful.StatefulContainer.access $500(StatefulContainer.java:79) at org.apache.openejb.core.stateful.StatefulContainer $ SessionSynchronizationCoordinator .afterCompletion(StatefulContainer.java:887) at org.apache.openejb.core.transaction.JtaTransactionPolicy $1.afterCompletion(JtaTransactionPolicy.java:155) at org .apache .geronimo .transaction .manager.TransactionImpl.afterCompletion(TransactionImpl.java:534) at org .apache .geronimo .transaction .manager.TransactionImpl.afterCompletion(TransactionImpl.java:526) at org .apache .geronimo .transaction.manager.TransactionImpl.commit(TransactionImpl.java:326) at org .apache .geronimo .transaction .manager.TransactionManagerImpl.commit(TransactionManagerImpl.java: 245) at org .apache .openejb .core .transaction .JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java: 291) at org .apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:71) at org .apache .openejb .core .transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java: 74) at org .apache .openejb .core.stateful.StatefulContainer.afterInvoke(StatefulContainer.java: 692) at org .apache .openejb .core .stateful.StatefulContainer.businessMethod(StatefulContainer.java:495) at org .apache .openejb .core.stateful.StatefulContainer.invoke(StatefulContainer.java:267) at org .apache .openejb .core .ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java: 217) at org .apache .openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
        at $Proxy154.findOrganizationalUnitMembers(Unknown Source)
        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:585)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org .jboss .seam .intercept.RootInvocationContext.proceed(RootInvocationContext.java: 31) at org.jboss.seam.intercept.ClientSideInterceptor $1.proceed(ClientSideInterceptor.java:76) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 56) at org .jboss .seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:43) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54) at org.javassist.tmp.java.lang.Object_$ $_javassist_45.findOrganizationalUnitMembers(Object_$ $_javassist_45.java) at t4 .core.commons.organization.facade.test.OrganizationFacadeServiceTest $12.testComponents(OrganizationFacadeServiceTest.java:681) at org.jboss.seam.mock.AbstractSeamTest $ComponentTest.run(AbstractSeamTest.java:162) at t4 .core .commons .organization .facade .test .OrganizationFacadeServiceTest .testFindOrganizationalUnitMembers (OrganizationFacadeServiceTest.java:678)
        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:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java: 580)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:607)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:874)
at org .testng .internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java: 125) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java: 109)
        at org.testng.TestRunner.runWorkers(TestRunner.java:689)
        at org.testng.TestRunner.privateRun(TestRunner.java:566)
        at org.testng.TestRunner.run(TestRunner.java:466)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:301)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:296)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:276)
        at org.testng.SuiteRunner.run(SuiteRunner.java:191)
        at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:808)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:776)
        at org.testng.TestNG.run(TestNG.java:701)
at org .apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java: 77) at org .apache .maven .surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java: 92)
        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:585)
at org .apache .maven .surefire .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334) at org .apache .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980) ERROR - An unexpected exception occured while writting the entries to disk
org.apache.openejb.SystemException: The type
org.apache.openejb.persistence.JtaEntityManager is not serializable as
mandated by the EJB specification.:
org.apache.openejb.persistence.JtaEntityManager
at org .apache .openejb .core.stateful.SimplePassivater.passivate(SimplePassivater.java:75) at org .apache .openejb .core.stateful.SimplePassivater.passivate(SimplePassivater.java:84) at org .apache .openejb.core.stateful.SimpleCache.storeEntries(SimpleCache.java:467) at org .apache .openejb.core.stateful.SimpleCache.processLRU(SimpleCache.java:408) at org .apache.openejb.core.stateful.SimpleCache.checkIn(SimpleCache.java: 239) at org .apache .openejb .core .stateful.StatefulContainer.releaseInstance(StatefulContainer.java: 636) at org.apache.openejb.core.stateful.StatefulContainer.access $500(StatefulContainer.java:79) at org.apache.openejb.core.stateful.StatefulContainer $ SessionSynchronizationCoordinator .afterCompletion(StatefulContainer.java:887) at org.apache.openejb.core.transaction.JtaTransactionPolicy $1.afterCompletion(JtaTransactionPolicy.java:155) at org .apache .geronimo .transaction .manager.TransactionImpl.afterCompletion(TransactionImpl.java:534) at org .apache .geronimo .transaction .manager.TransactionImpl.afterCompletion(TransactionImpl.java:526) at org .apache .geronimo .transaction.manager.TransactionImpl.commit(TransactionImpl.java:326) at org .apache .geronimo .transaction .manager.TransactionManagerImpl.commit(TransactionManagerImpl.java: 245) at org .apache .openejb .core .transaction .JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java: 291) at org .apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:71) at org .apache .openejb .core .transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java: 74) at org .apache .openejb .core.stateful.StatefulContainer.afterInvoke(StatefulContainer.java: 692) at org .apache .openejb .core .stateful.StatefulContainer.businessMethod(StatefulContainer.java:495) at org .apache .openejb .core.stateful.StatefulContainer.invoke(StatefulContainer.java:267) at org .apache .openejb .core .ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java: 217) at org .apache .openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org .apache .openejb .core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
        at $Proxy154.findOrganizationalUnitMembers(Unknown Source)
        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:585)
        at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org .jboss .seam .intercept.RootInvocationContext.proceed(RootInvocationContext.java: 31) at org.jboss.seam.intercept.ClientSideInterceptor $1.proceed(ClientSideInterceptor.java:76) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 56) at org .jboss .seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:43) at org .jboss .seam .intercept.SeamInvocationContext.proceed(SeamInvocationContext.java: 68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: 107) at org .jboss .seam .intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54) at org.javassist.tmp.java.lang.Object_$ $_javassist_45.findOrganizationalUnitMembers(Object_$ $_javassist_45.java) at t4 .core.commons.organization.facade.test.OrganizationFacadeServiceTest $12.testComponents(OrganizationFacadeServiceTest.java:681) at org.jboss.seam.mock.AbstractSeamTest $ComponentTest.run(AbstractSeamTest.java:162) at t4 .core .commons .organization .facade .test .OrganizationFacadeServiceTest .testFindOrganizationalUnitMembers (OrganizationFacadeServiceTest.java:678)
        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:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java: 580)
        at org.testng.internal.Invoker.invokeMethod(Invoker.java:478)
        at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:607)
        at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:874)
at org .testng .internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java: 125) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java: 109)
        at org.testng.TestRunner.runWorkers(TestRunner.java:689)
        at org.testng.TestRunner.privateRun(TestRunner.java:566)
        at org.testng.TestRunner.run(TestRunner.java:466)
        at org.testng.SuiteRunner.runTest(SuiteRunner.java:301)
        at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:296)
        at org.testng.SuiteRunner.privateRun(SuiteRunner.java:276)
        at org.testng.SuiteRunner.run(SuiteRunner.java:191)
        at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:808)
        at org.testng.TestNG.runSuitesLocally(TestNG.java:776)
        at org.testng.TestNG.run(TestNG.java:701)
at org .apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java: 77) at org .apache .maven .surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java: 92)
        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:585)
at org .apache .maven .surefire .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334) at org .apache .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)
Caused by: java.io.NotSerializableException:
org.apache.openejb.persistence.JtaEntityManager
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1081) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache.openejb.util.PojoSerialization.write(PojoSerialization.java: 134) at org .apache .openejb.util.PojoSerialization.writeObject(PojoSerialization.java:65)
        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:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 917) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1339) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java .io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java: 1375) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1347) at java .io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1290) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1079) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 302) at org .apache .openejb .core.stateful.SimplePassivater.passivate(SimplePassivater.java:70)
        ... 67 more


I desperately try to understand what happens for a few days, so any
help will be very welcome ;)

Sorry for this long post, but not very easy to explain what happens
since my architecture is a bit complex :(

Regards,

Olivier


Reply via email to