Data Race Detector
by Devexperts
IBM MSDK - hybrid dynamic data race detector
Thread Sanitizer for Java - hybrid post-mortem detector, that uses original Thread Sanitizer to analyze log file. See introduction here.
jChord - static race detector for Java.
JVM method descriptors : http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.3.3
JLS chapter about threads: http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html
happens-before relation: http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.4.5
java.util.concurrent.atomic documentation: http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/atomic/package-summary.html
java.util.concurrent documentation: http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html
Alternative "lockset" algorithm was originally introduced in this paper: http://www.cs.duke.edu/courses/cps210/spring06/papers/eraser.pdf
ObjectWeb ASM - Java bytecode manipulation framework, used in DRD.