Details
-
Enhancement
-
Resolution: Unresolved
-
Minor
-
None
-
5.0.3
-
None
-
None
Description
Noticed while browsing through some code that the TransactionReaper uses currentTimeMillis() to calculate timeouts. However the timestamp reported by this method can change in an unexpected way if the system clock is changed.
An artificial clock based on System.nanoTime() should be used instead, since while this time may vary slightly between cores, in general it will be highly accurate and, most importantly, monotonic and steady (and unaffected by changes to the system time).