diff --git a/community/kernel/src/main/java/org/neo4j/kernel/recovery/Recovery.java b/community/kernel/src/main/java/org/neo4j/kernel/recovery/Recovery.java index e18d9fa0e3070..b42229e873899 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/recovery/Recovery.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/recovery/Recovery.java @@ -143,7 +143,9 @@ private void initProgressReporter( RecoveryStartInformation recoveryStartInforma { long numberOfTransactionToRecover = getNumberOfTransactionToRecover( recoveryStartInformation, lastReversedTransaction ); - progressReporter.start( numberOfTransactionToRecover << 1 ); + // since we will process each transaction twice (doing reverse and direct detour) we need to + // multiply number of transactions that we want to recover by 2 to be able to report correct progress + progressReporter.start( numberOfTransactionToRecover * 2 ); } private void reportProgress() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/recovery/RecoveryProgressIndicatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/recovery/RecoveryProgressIndicatorTest.java index d341081f8ee13..4807f7a2ac039 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/recovery/RecoveryProgressIndicatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/recovery/RecoveryProgressIndicatorTest.java @@ -42,9 +42,9 @@ public class RecoveryProgressIndicatorTest @Test public void reportProgressOnRecovery() throws Throwable { - RecoveryService recoveryService = mock( RecoveryService.class, Answers.RETURNS_MOCKS.get() ); + RecoveryService recoveryService = mock( RecoveryService.class, Answers.RETURNS_MOCKS ); StartupStatisticsProvider statisticsProvider = mock( StartupStatisticsProvider.class ); - TransactionLogPruner logPruner = mock( TransactionLogPruner.class ); + CorruptedLogsTruncator logsTruncator = mock( CorruptedLogsTruncator.class ); RecoveryMonitor recoveryMonitor = mock( RecoveryMonitor.class ); TransactionCursor reverseTransactionCursor = mock( TransactionCursor.class ); TransactionCursor transactionCursor = mock( TransactionCursor.class ); @@ -68,7 +68,7 @@ public void reportProgressOnRecovery() throws Throwable when( recoveryService.getTransactions( recoveryStartPosition ) ).thenReturn( transactionCursor ); AssertableProgressReporter progressReporter = new AssertableProgressReporter( expectedMax ); - Recovery recovery = new Recovery( recoveryService, statisticsProvider, logPruner, recoveryMonitor, + Recovery recovery = new Recovery( recoveryService, statisticsProvider, logsTruncator, recoveryMonitor, progressReporter, true ); recovery.init();