RoundRobinStrategy: avoiding possible IndexOutOfBounds, and performance optimization by getting Node list 1x instead of 3x.
Code beauty: replaced .size==0 with .isEmpty().
Hostname class initialization: assigning static class variable in constructor is evil. A later execution could interfere with (non-volatile) variable access. And is not necessary.
The class has 4/6 test failures (before and after). I don't fully understand the logic, therefore I won't touch the main code.
RoundRobinStrategy: shortened time of synchronization.