As byefruit says above - we (undo.io) sell a Java Time Travel Debugger.
If anybody wants to try it, they should get in touch with us.
Our Java tech is based on an underlying record/replay engine that works at the level of machine instructions / syscalls to record the entire process. On top of that we've added the necessary cleverness to show what that means at Java level (so normal source-level debugging works).
That's different to e.g. Chronon, which I think was a pure Java solution:
https://blog.jetbrains.com/idea/2014/03/try-chronon-debugger...
It had some flexibility (e.g. only record certain classes) but at the cost of quite considerable slowdown and very large storage requirements.