Data Race Detector (DRD) is a tool for dynamic detection of data races in Java programs, implemented as a java agent. DRD works in same JVM with the target application and dynamically detects occuring and possible races. Results are logged to files, for each race additional information is printed: class+method+line number for both accesses, race type, at least one stacktrace.
How to use
Open config.xml. Find RaceDetection section and assure that rules inside it cover exactly your application and nothing more. Usually it's enough to have one rule based on unique prefix of your application packages. Also check that SyncInterception section is empty and defaultPolicy is "*"
Open drd.properties. Set "drd.config.dir" and "drd.log.dir" properties: