diff --git a/src/Controller.java b/src/Controller.java index d1691785b9bce222e65b61bb5150d9846a31cab9..87085e8b13da2202a4e0455b62a4265c2ab3bdaa 100644 --- a/src/Controller.java +++ b/src/Controller.java @@ -496,25 +496,29 @@ public class Controller extends Server { private void rebalanceOperation() { - if (rebalanceInProgess) rebalanceCounter++; - else { - threadIDOutput("Started Rebalance Operation"); + threadIDOutput("Started Rebalance Operation"); - State currentSate = currentState(); + if (rebalanceInProgess) { + rebalanceCounter++; + threadIDOutput("Rebalance already in progress, queued for later"); + } + else if (fileIndex.size() == 0) { + threadIDOutput("Rebalance cancelled, no files currently stored"); + } + else { + State currentSate = currentState(); - List<Change> changes = rebalance(currentSate); + List<Change> changes = rebalance(currentSate); - if (!changes.isEmpty()) rebalanceChanges(changes); - else rebalanceInProgess = false; - } + if (!changes.isEmpty()) rebalanceChanges(changes); + else rebalanceInProgess = false; + } } public DStoreConnection registerDStore(Socket requestingSocket, String joinRequest) { - if (fileIndex.size() > 0) { - rebalanceOperation(); - } + rebalanceOperation(); Socket dSock = requestingSocket;