> seriously now the only test I see is passing the context in the
> invocations... which means the proxies somehow... then you build a stack
of
> ctx in a thread local thing and you pass that in the invocations by proxy
> retrieval, hugh....

No, I think there are other ways.

The three cases I see are:
* Reentrant call within one tx. This one is simple: just check if the ctx is
locked and the locking tx is the same as the current
* Reentrant call through A, calling B which has RequiresNew, which calls A.
This one will be resolved through tx timeout (it is a form of deadlock).
>From a reentrancy point of view the timeout exception follows the spec
semantics of reentrancy (i.e. exc is thrown).
* Reentrant call without any tx's at all, which would require the callstack
to do properly. This one is tougher since there are no timeouts. We should
probably do a manual timeout of this in the instanceinterceptor.

These are the cases I see. The first one is simple, and the other two
require timeouts.

Makes sense?

/Rickard



Reply via email to