I am looking for a tool or api which allows deterministic execution of Java threads for testing purposes. Thus, allowing context switches in java code at certain locations in byte code. For instance, I want a thread t1 to preempt for another thread t2 at say line N in the bytecode/sourcecode and so on. To make the case simpler lets ignore the synchronization or locks. Is there any tool, if possible open source customized JVM available. I am aware of a few tools like dejavu, LEAP but I would like to know about recommended open source tools from some one who has experience with such tools.