If you update on both nodes, locks will be acquired in both places. So it depends on where O1 and O2 are located? If they are under the same fqn, yes, you will have deadlock and rollback will be resulted.
1. O1 and O2 are placed in different caches (C1 and C2 respectively) and they are placed under DIFFERENT fqns
2. I do not update on both nodes; I update on node N1 objects O1 and O2 in cache C1 respectively C2 and read on node N2 in a C2 listener (triggered by the O2 put on N1) the object O1 from cache C1; during this read I get the TimeoutException with the message that N1 has the write lock (acquired when placing O1 in C1)
3. I use jboss cache 1.2.1 and jboss 3.2.7
Is this a defect? Should this scenario work without deadlock?
If you can contribute a JUnit case that illustrates this problem, that will help me to troublehoot your problem.