Hi,

I'm upgrading to Seam 2.0 and included jars (Hibernate EntityManager 3.3.1.GA, 
etc).

I have some code that used to work OK but now I'm getting the stack attached  
(when running integration tests in the embedded container).

If I have a Parent with a Set of children and I delete one of those children 
(that is set to cascade) this works OK.  As soon as I call flush after the 
update manually I get the stack.


  | @Stateless
  | @Remote(ContractManager.class)
  | @Local(ContractManagerLocal.class)
  | @Name("contractManager")
  | public class ContractManagerBean implements ContractManager {
  | ...
  |     public Contract updateContract(Contract contract) {
  |             contract = em.merge(contract);
  |             // Add this line I get a stack... remove and it's OK
  |             em.flush();
  |             return contract;
  |     }
  | 

I need to control the flushing in my case in a more complicated example due to 
database constraints.

Any advise ?


  | ERROR [org.jboss.seam.jsf.SeamPhaseListener] uncaught exception
  | java.lang.IllegalStateException: Could not commit transaction
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:592)
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsAfterPhase(SeamPhaseListener.java:325)
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:226)
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:184)
  |     at 
org.jboss.seam.mock.BaseSeamTest$Request.invokeApplicationPhase(BaseSeamTest.java:666)
  |     at 
org.jboss.seam.mock.BaseSeamTest$Request.emulateJsfLifecycle(BaseSeamTest.java:598)
  |     at 
org.jboss.seam.mock.BaseSeamTest$Request.access$300(BaseSeamTest.java:185)
  |     at 
org.jboss.seam.mock.BaseSeamTest$Request$2.doFilter(BaseSeamTest.java:519)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
  |     at 
org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |     at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |     at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |     at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |     at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
  |     at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  |     at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  |     at org.jboss.seam.mock.BaseSeamTest$Request.run(BaseSeamTest.java:514)
  |     at 
jnet.emtest.bl.company.TestContractManager.testCRUDKids(TestContractManager.java:183)
  |     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.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
  |     at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
  | Caused by: javax.transaction.RollbackException: 
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] 
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't 
commit because the transaction is in aborted state
  |     at 
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1267)
  |     at 
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
  |     at 
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
  |     at 
org.jboss.embedded.adapters.LocalOnlyUserTransaction.commit(LocalOnlyUserTransaction.java:91)
  |     at 
org.jboss.seam.transaction.UTTransaction.commit(UTTransaction.java:52)
  |     at 
org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListener.java:582)
  |     ... 43 more
  | Caused by: javax.persistence.PersistenceException: 
java.lang.IllegalArgumentException: Removing a detached instance 
jnet.dm.company.ContractRate#2
  |     at 
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:527)
  |     at 
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114)
  |     at 
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:249)
  |     at 
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:88)
  |     at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
  |     at 
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1256)
  |     ... 48 more
  | Caused by: java.lang.IllegalArgumentException: Removing a detached instance 
jnet.dm.company.ContractRate#2
  |     at 
org.hibernate.ejb.event.EJB3DeleteEventListener.performDetachedEntityDeletionCheck(EJB3DeleteEventListener.java:47)
  |     at 
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:75)
  |     at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:775)
  |     at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:758)
  |     at org.hibernate.engine.Cascade.deleteOrphans(Cascade.java:355)
  |     at 
org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:324)
  |     at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
  |     at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
  |     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
  |     at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
  |     at 
org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:131)
  |     at 
org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:122)
  |     at 
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65)
  |     at 
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
  |     at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
  |     at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
  |     at 
org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:515)
  | 



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4136003#4136003

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4136003
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to