On Sep 25, 2009, at 5:20 PM, David Blevins wrote:


On Sep 24, 2009, at 2:27 PM, David Blevins wrote:


On Aug 24, 2009, at 12:53 AM, Jean-Louis MONTEIRO wrote:

REQUIRED -> REQUIRES_NEW
REQUIRED -> NOT_SUPPORTED

Hey Jean-Louis, do you think you'll need the REQUIRED -> REQUIRES_NEW scenario? Technically neither of the above is legal or portable, but I think we can support REQUIRED->NOT_SUPPORTED just fine, but the other may be a tricky rule to bend code wise.

The code I'm working on now associates a Transaction with the o.a.o.core.stateful.Instance object (basically a new field) and uses that to determine if you are attempting to use the instance outside the transaction. Going from a transaction state to a non transaction state is doable. Going from a transaction state to another transaction state (essentially an nested transaction) would require a bit of fanciness.

Grr. Got something that works, but now am running into an issue with one of the more obscure restrictions that you can't remove a bean via its EJBObject or EJBHome interface if it is in a transaction. It's breaking one of our tests and I know it will break the TCK.


Alright, we're good on this one now.

We now track a transaction object in the Instance which is checked to prevent access outside the transaction. It's actually a stack of Transaction objects.. more on that next.

We also have some special logic that allows the client using the instance in the transaction to bend the rules and invoke the bean as it wishes (it can still invoke REQUIRES_NEW and NOT_SUPPORTED methods). In this scenario the instance will still be considered in transaction stay locked to other threads.

Going to push new snapshots. On the Geronimo side we'll want to kick off a new tck run. If that looks good, we can finally cut this release.


-David

Reply via email to