Chapter 3:  Fault Tolerance (Java) adapted