CDV ❯ ReadOnlyException when last lock taken was a read lock even though a write lock is held
-
Bug
-
Status: Closed
-
3 Minor
-
Resolution: Fixed
-
Lock Manager
-
-
hhuynh
-
Reporter: stulscot
-
June 05, 2008
-
0
-
Watchers: 1
-
August 04, 2008
-
July 18, 2008
Attachments
Description
If the write lock of a ReentrantReadWriteLock is held then the read lock taken and a shared object modified a ReadOnlyException will be thrown even though the write lock is held (see attached example ThrowReadOnlyException.java).
This is also the case if the write lock and read locks of different ReentrantReadWriteLocks are held (see forum post http://forums.terracotta.org/forums/posts/list/1124.page#6770).
It appears that when checking if a shared object is writable only the very last lock taken counts.
The simple work around is to make sure the write lock is the last lock taken before modifying the shared object.
Comments
Fiona OShea 2008-06-05
Geert Bevin 2008-07-16
I committed a fix in revision 9244. I’d appreciate a code review on this.
If this is low hanging fruit fix, then fix for 2.7