JLeak is a JVM agent meant to track down memory leaks within Java applications. It uses the javassist library to enhance Java classes in order to register instantiations and finalizations. The history view shows the stack trace of all new recorded instances. The graphic interface can be launched within the application or remotely as a dedicated process. Either way, the JLeak engine and the GUI communicate through network sockets. JLeak adds a reasonable memory overhead consumption, and can be easily launched through any IDE such as Eclipse, even on J2EE applications.
Thread Weaver is a framework for writing multithreaded unit tests for Java classes. It lets you create breakpoints inside your code and to stop individual threads when they reach a breakpoint. This allows you to produce controlled repeatable tests that can help to verify thread safety and detect race conditions.