Many developers use System.currentTimeMillis() to measure how fast their code runs, but this method has serious problems.
When measuring elapsed time in the ClientState class (and possibly in other places too), the code makes use of System ...
public static void main (String [] args) { // JIT/hotspot warmup: for (int r = 0; r < 3000; ++ r) System.currentTimeMillis ...