|I believe the solution there is to re-check the tx in ctx inside the else |reentrant block and break with a null context to make a 1 loop (no wait) |back in the synchronized(ctx.getLock()), that will work a wait. done in cvs ||- In EntitytInstanceInterceptor.invoke in the finally block. If an ||exception is thrown, you should do a ctx.getTxLock().notifyAll() |as well as ||ctx.notifyAll(). An exception could happen in loadEntity, thus, no Sync ||would be registered with the TM, thus threads waiting on ctx.getTxLock() ||would never be awakened. | |that is correct, good catch, forgot pure and simple (that check at line 278 |!ctx.isTxSynchronized() that right there tells me "free everyone"). I |didn't catch that in test since we don't test "failure of server db", |interesting... we should, we should nip connections done in cvs ||locks should be pulled out of EnterpriseContext and be managed by some ||LockManager. If multiple instances for option B and C is ever ||implemented(I'd like to tackle this), they'll have to use a different ||locking mechanism because you wouldn't be able to synchronize on ctx and ||ctx.getTxLock(). | |yes, that is XP, I am not going to complicate the code until we really need |to. You will notice that I left the lock stuff commented but not removed |for that purpose, it is a very possible we use this in the future, but the |first thing I wanted to get going is the bare bones version. commented last traces of locks in cache, feel free to use back in old version ctxLock instead of ctx as long as the logic is the same shoul be fine keep it coming, marcf _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development
