DirSynch is a bidirectional directory synchronizing software. It helps you to discover the status of each file in both directories: if it's only in one of them, if it's newer in one than in the other, or if they are simply equal. After letting you to choose which files do you want to synchronize, it performs the right operations to make both directories equal (or not, if you want it different). The program can create a backup of the files before overwriting them.
When two threads access a shared variable, at least one thread writes, and there is no ordering of these accesses, a data race occurs. JaDaRD is a JVM agent that monitors the application and reports data races.