I have submitted a PR for fixing this bug, please review. @iluwatar  @ohbus 
Concurrency problems in leader-followers pattern
I have found a bug in the leader-followers pattern during unit test. In the state of concurrency, there is a small chance that no new leader will be promoted. The reason is that in the worker class, there is no double check before calling the wait method of workercenter. It causes the thread which should become leader mistakenly believe that the leader already exists and waits. 
leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java
leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java
diff --git a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java
index 6c7caed244b7..21326bb0a77c 100644
--- a/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java
+++ b/leader-followers/src/main/java/com/iluwatar/leaderfollowers/Worker.java
@@ -57,9 +57,11 @@ public void run() {
       try {
         if (workCenter.getLeader() != null && !workCenter.getLeader().equals(this)) {
           synchronized (workCenter) {
-            workCenter.wait();
+            if (workCenter.getLeader() != null && !workCenter.getLeader().equals(this)) {
+              workCenter.wait();
+              continue;
+            }
           }
-          continue;
         }
         final Task task = taskSet.getTask();
         synchronized (workCenter) {
