Chapter 8. Transactions 137
When the commit method of transaction T1_1 is called a
VapMergeFailureException is thrown. The VapMergeFailureException tells
youinthiscontext,thattheobjectversion(letuscallitV1_1)oftransaction
T1_1cannot be merged tothe parent transactionT1’s object version (V1). The
reason is that V1_1 was copied on read from V1, and in the mean time V1 has
changed. It does not matter how the changes got to V1, whether it was
directly changed in transaction T1 (like in our sample) or whether another
sibling child transaction merged its version first. This is what is called
conflict detection. In a real application, you would either display an
instructional message to the user or implement your own conflict resolution.
To implement your o ...