tss: “NASA has just released Java PathFinder, a Java Virtual Machine that uses states to check all the possible ways a Java program can be executed, finding possible errors (NPEs or deadlocks, for example) in your code.
It then reports the entire execution path that leads to a defect. It’s especially suited to find hard-to-test concurrency defects in multithreaded programs.
the software is limited to check for thread locks and uncaught exceptions, but it can be extended to check for other things, like race conditions. However, there is no support currently for java.awt, java.net and some of java.io.
The license is a custom license from NASA, NASA Open Source Agreement 1.3, but if the project was approved on Sourceforge it should follow the OSI conventions.”