From 63142f2d37ba014a23f66fb95abb8b323fb850c2 Mon Sep 17 00:00:00 2001 From: Joao Sousa Date: Mon, 29 Feb 2016 19:37:08 +0000 Subject: [PATCH] Fixed a bug in the state transfer that would happen when the system had only a single replica. --- .../statemanagement/strategy/StandardStateManager.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bftsmart/statemanagement/strategy/StandardStateManager.java b/src/bftsmart/statemanagement/strategy/StandardStateManager.java index e9ac0ed6..d2c8cf1e 100644 --- a/src/bftsmart/statemanagement/strategy/StandardStateManager.java +++ b/src/bftsmart/statemanagement/strategy/StandardStateManager.java @@ -87,8 +87,13 @@ public class StandardStateManager extends BaseStateManager { //pos = this.SVController.getCurrentViewPos(replica); //replica = this.SVController.getCurrentViewProcesses()[(pos + 1) % SVController.getCurrentViewN()]; - pos = r.nextInt(processes.length); - replica = processes[pos]; + if (processes != null && processes.length > 1) { + pos = r.nextInt(processes.length); + replica = processes[pos]; + } else { + replica = 0; + break; + } } while (replica == SVController.getStaticConf().getProcessId()); } -- GitLab