diff --git a/src/refit/application/rezk/REZKTestClientExists.java b/src/refit/application/rezk/REZKTestClientExists.java index c2d6bb9f49b2f4ca0177484858cb20fb53d0bdd9..057930ead1677688641dfd23e46b08d96b984d53 100644 --- a/src/refit/application/rezk/REZKTestClientExists.java +++ b/src/refit/application/rezk/REZKTestClientExists.java @@ -9,18 +9,21 @@ import refit.util.REFITTime; public class REZKTestClientExists extends REZKTestClient { private static final String[] prePaths = new String[2 * REFITConfig.NR_OF_NODES]; - static { - for (int i = 0; i < prePaths.length; i++) { - prePaths[i] = String.format("%s%05d", "/node", i); - } - } - private String[] paths; private boolean[] isValidPath; private int counter = 0; public REZKTestClientExists(REFITClientLibrary service) { super(service); + + synchronized (prePaths) { + if (prePaths[0] == null) { + for (int i = 0; i < prePaths.length; i++) { + prePaths[i] = String.format("%s%05d", "/node", i); + } + } + } + paths = new String[REFITConfig.NR_OF_NODES]; isValidPath = new boolean[paths.length]; // ensure reproducibility diff --git a/src/refit/application/rezk/REZKTestClientReadWrite.java b/src/refit/application/rezk/REZKTestClientReadWrite.java index a3d21b21ab978d23ed33cc4b3f279ad3c8deb46a..f45349a4c38459ffd27ec72e75a0347d7835ca3e 100644 --- a/src/refit/application/rezk/REZKTestClientReadWrite.java +++ b/src/refit/application/rezk/REZKTestClientReadWrite.java @@ -12,17 +12,20 @@ import refit.util.REFITTime; public class REZKTestClientReadWrite extends REZKTestClient { private static final String[] paths = new String[REFITConfig.NR_OF_NODES]; - static { - for (int i = 0; i < paths.length; i++) { - paths[i] = String.format("%s%05d", "/node", i); - } - } - private int counter = 0; private Random rand; public REZKTestClientReadWrite(REFITClientLibrary service) { super(service); + + synchronized (paths) { + if (paths[0] == null) { + for (int i = 0; i < paths.length; i++) { + paths[i] = String.format("%s%05d", "/node", i); + } + } + } + rand = new Random(service.getNodeID()); } diff --git a/src/refit/application/rezk/REZKTestClientReadWriteActive.java b/src/refit/application/rezk/REZKTestClientReadWriteActive.java index e45828eab14fe830179a4170c8c96a189e0eb635..7baf684bc5a6b106a18405bc57e0e19d7a5adaf9 100644 --- a/src/refit/application/rezk/REZKTestClientReadWriteActive.java +++ b/src/refit/application/rezk/REZKTestClientReadWriteActive.java @@ -11,18 +11,21 @@ import refit.util.REFITTime; public class REZKTestClientReadWriteActive extends REZKTestClient { private static final String[] paths = new String[REFITConfig.NR_OF_NODES]; - static { - for (int i = 0; i < paths.length; i++) { - paths[i] = String.format("%s%05d", "/node", i); - } - } - private static AtomicLong nextObj = new AtomicLong(); private int counter = 0; private Random rand; public REZKTestClientReadWriteActive(REFITClientLibrary service) { super(service); + + synchronized (paths) { + if (paths[0] == null) { + for (int i = 0; i < paths.length; i++) { + paths[i] = String.format("%s%05d", "/node", i); + } + } + } + rand = new Random(service.getNodeID()); } diff --git a/src/refit/application/rezk/REZKTestClientReadWriteConflict.java b/src/refit/application/rezk/REZKTestClientReadWriteConflict.java index bbab85b14cc21b2884f09d45dfe0081b098c39f5..1391f17055b9ab7fc21739f7f73e9894e28ae257 100644 --- a/src/refit/application/rezk/REZKTestClientReadWriteConflict.java +++ b/src/refit/application/rezk/REZKTestClientReadWriteConflict.java @@ -10,16 +10,19 @@ import refit.util.REFITTime; public class REZKTestClientReadWriteConflict extends REZKTestClient { private static final String[] paths = new String[REFITConfig.ACTIVE_NODES]; - static { - for (int i = 0; i < paths.length; i++) { - paths[i] = String.format("%s%05d", "/node", i); - } - } - private Random rand; public REZKTestClientReadWriteConflict(REFITClientLibrary service) { super(service); + + synchronized (paths) { + if (paths[0] == null) { + for (int i = 0; i < paths.length; i++) { + paths[i] = String.format("%s%05d", "/node", i); + } + } + } + rand = new Random(service.getNodeID()); }