Sorry about that. I finally killed it.
(BMP and CMP)
I will take the brunt of the blame, it *is* due to the changes I did last
week to the TxInfrastructure, had I read the TestBeans output closely I
would have seen it. I will give a (friendly) slap on the wrist to rickard
since the previous design relied on implicit information (Tx in ctx == null)
that was ironed out with the MethodInvocation encapsulation of the
information, and that was really easy to break (and I did). In such a large
design you are bound to find little details like that.
Bottom line is that a CTX is associated to the TX only when the locking is
OK. So when a ctx joins a methodInvocation his tree of information (Mi.Tx
and ctx.Tx) is valid.
Ok the new stuff relies on solid encapsulated information and you try to go
break it...
I also changed the class significantly to implement a O(1) management of
registration instead of the previous sync+map O(log) lookup. The names have
been ironed out (valid state is called "isValid" instead of the cryptic
"isSynch" (db is not synch however state is valid, misleading )). The
isInvoked and isValid pair is encapsulated and we rely on that for our
storage decisions.
Ran the TestBeans BMP and it works (I *DO* see "EntityBMP.ejbStore() called"
:)))
it's in CVS, sorry about that one, do as I say not as I do
regards
marc
________________________
Marc Fleury
Chief Technology Officer
Telkel, Inc.
________________________