>Consider thread *Th1* started transaction *Tx1*, done some actions, and is >calling commit (GridNearTxLocal#commit -> commitNearTxLocalAsync). And >concurrently thread *Th2 *is calling the same commit on* Tx1*.
Alexey, this looks weird to me. IMO, if we talk about proper implementation you should detect all cases of illegal access (e.g. commit from thread not owning the transaction). --Yakov