1. A method implemented with a processor equipped with memory-stored instructions for carrying out process of statically initializing classes supportive of a replay core context, where the instructions upon being executed by the processor, perform the initialization process comprising steps of: prior to initialization of a class associated with application code, determining that the class contains a static initialization method, wherein the static initialization method has a first name and contains a blocking call; in response to determining that the class contains a static initialization method, renaming the static initialization method to have a second name instead of the first name, wherein a thread that executes the static initialization method having the second name releases a global application lock before making the blocking call; injecting, into the class, an empty method that has the first name and causes a virtual machine to obtain a class lock on the class upon invocation of the empty method; injecting, into the class, a checking method which, when executed, determines whether the method having the second name has already been executed, and executes the method having the second name only if the method having the second name has not yet been executed; and injecting, into the application code, at points of execution at which an invocation of the method having the first name could be triggered by the virtual machine, an invocation of the checking method; wherein in response to the virtual machine invoking the static initialization method that has the first name, the empty method returns without performing the blocking call; wherein said steps are performed by a replay core that executes in a computing system.