users@glassfish.java.net

Re: Removing stateful EJB and transactions

From: <glassfish_at_javadesktop.org>
Date: Tue, 30 Oct 2007 00:23:06 PST

The stacktrace is the following (abbreviated):

javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
        at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
        at
....
EJB5018: An exception was thrown during an ejb invocation on [StructureSession]
javax.ejb.EJBTransactionRolledbackException
        at com.sun.ejb.containers.BaseContainer.mapBusinessInterfaceException(BaseContainer.java:1482)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1396)
        at
....
Caused by: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
        at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394)
        at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274)
...


Basically, the problem appears when I use this code in the [b]Structuresession.java[/b]:

x.init(); // call init
x.process(structureEntity.getGuid()); // do processing
x.remove();
structureEntity = this.findStructureEntityByGuid(userEntity, structureEntity.getGuid());

The transaction associated with this session seem to be gone or non-existent anymore. When I place the remove-method at the end (as in the example), I do NOT get an error, but the transaction is rolled back since nothing is in the DB. When I remove all "remove"-methods, everything works fine.

I don't have a clue anymore!

PS: all remove-methods are annotated with @Remove.

Greetings
Jan
[Message sent by forum member 'ossaert' (ossaert)]

http://forums.java.net/jive/thread.jspa?messageID=242859