mayur_naik - 2005-10-10

Hi,

I've been evaluating the effectiveness of a static race detection tool I've developed on open source Java programs.  I ran it on the jdbm source code and found races in it due to missing synchronization in methods getNamedObject and setNamedObject in class BaseRecordManager.  You can view the races here:

http://suif.stanford.edu/~mhn/jdbm-1.0/build/classes/paos3/inst_races.fld.html

Shouldn't these two methods be synchronized on 'this', like the other public methods in BaseRecordManager?  There's a comment in this class which states that it is OK for multiple threads to use it.  Also, I note that these methods in class CacheRecordManager are synchronized.

Thanks,
-- Mayur