Using Instrumentation to Reproduce the Execution of Java Concurrent Programs - Delamaro, Márcio Eduardo (Anais do Simpósio Brasileiro de Qualidade de Software (SBQS), 2004)
The Java language provides mechanisms to implement concurrency and synchronization based on the monitor model. Testing multi-thread Java programs many times requires to re-execute them with determined test data. The problem is that re-executing such programs with a same test datum does not guarantee the same behavior due to the non deterministic scheduling policy implemented in the JVM. In this paper we present a simple way to reproduce the behavior of a multi-thread Java program, based on program instrumentation.