We are using JBoss Cache 1.4.1SP1 with optimistic locking.
It seems, that when retrieving objects from the cache within a transaction in a read only manner (means only getter methods are called on the retrieved objects) that the version of the object is increased anyway when the transaction is committed.
As a result of this we get a version conflict exception in another transaction where the object is modified.
Can anybody confirm this behaviour?
Try upgrading to the latest SP on 1.4.1. This is something that was reported and was fixed.