diff --git a/core/src/main/java/com/ericsson/bss/cassandra/ecchronos/core/repair/IncrementalRepairJob.java b/core/src/main/java/com/ericsson/bss/cassandra/ecchronos/core/repair/IncrementalRepairJob.java index ee610cc3b..ddc4bedd4 100644 --- a/core/src/main/java/com/ericsson/bss/cassandra/ecchronos/core/repair/IncrementalRepairJob.java +++ b/core/src/main/java/com/ericsson/bss/cassandra/ecchronos/core/repair/IncrementalRepairJob.java @@ -128,24 +128,16 @@ public Iterator iterator() } /** - * Decides if the job is runnable. - * - * @return true if enough time has passed and there is something to repair. + * Check if there's anything to repair, if not then just move the last run. */ @Override - public boolean runnable() + public void refreshState() { - if (super.runnable()) + boolean nothingToRepair = getProgress() >= 1.0; + if (nothingToRepair) { - boolean nothingToRepair = getProgress() >= 1.0; - if (nothingToRepair) - { - myLastSuccessfulRun = System.currentTimeMillis(); - return false; - } - return true; + myLastSuccessfulRun = System.currentTimeMillis(); } - return false; } /** diff --git a/core/src/test/java/com/ericsson/bss/cassandra/ecchronos/core/repair/TestIncrementalRepairJob.java b/core/src/test/java/com/ericsson/bss/cassandra/ecchronos/core/repair/TestIncrementalRepairJob.java index b379fc46a..f3350497d 100644 --- a/core/src/test/java/com/ericsson/bss/cassandra/ecchronos/core/repair/TestIncrementalRepairJob.java +++ b/core/src/test/java/com/ericsson/bss/cassandra/ecchronos/core/repair/TestIncrementalRepairJob.java @@ -218,6 +218,7 @@ public void testRunnableNothingRepaired() { doReturn(0.0d).when(myCassandraMetrics).getPercentRepaired(myTableReference); IncrementalRepairJob job = getIncrementalRepairJob(); + job.refreshState(); assertThat(job).isNotNull(); assertThat(job.runnable()).isTrue(); @@ -228,6 +229,7 @@ public void testRunnableHalfRepaired() { doReturn(50.0d).when(myCassandraMetrics).getPercentRepaired(myTableReference); IncrementalRepairJob job = getIncrementalRepairJob(); + job.refreshState(); assertThat(job).isNotNull(); assertThat(job.runnable()).isTrue(); @@ -238,6 +240,7 @@ public void testRunnableEverythingRepaired() { doReturn(100.0d).when(myCassandraMetrics).getPercentRepaired(myTableReference); IncrementalRepairJob job = getIncrementalRepairJob(); + job.refreshState(); assertThat(job).isNotNull(); assertThat(job.runnable()).isFalse(); @@ -249,6 +252,7 @@ public void testRunnableIntervalNotYetPassed() long lastRepairedAt = System.currentTimeMillis(); doReturn(lastRepairedAt).when(myCassandraMetrics).getMaxRepairedAt(myTableReference); IncrementalRepairJob job = getIncrementalRepairJob(); + job.refreshState(); assertThat(job).isNotNull(); assertThat(job.runnable()).isFalse();