//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void reportProgressOnRecovery() throws Throwable //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ReportProgressOnRecovery() { RecoveryService recoveryService = mock(typeof(RecoveryService), Answers.RETURNS_MOCKS); CorruptedLogsTruncator logsTruncator = mock(typeof(CorruptedLogsTruncator)); RecoveryMonitor recoveryMonitor = mock(typeof(RecoveryMonitor)); TransactionCursor reverseTransactionCursor = mock(typeof(TransactionCursor)); TransactionCursor transactionCursor = mock(typeof(TransactionCursor)); CommittedTransactionRepresentation transactionRepresentation = mock(typeof(CommittedTransactionRepresentation)); int transactionsToRecover = 5; int expectedMax = transactionsToRecover * 2; int lastCommittedTransactionId = 14; LogPosition recoveryStartPosition = LogPosition.start(0); int firstTxIdAfterLastCheckPoint = 10; RecoveryStartInformation startInformation = new RecoveryStartInformation(recoveryStartPosition, firstTxIdAfterLastCheckPoint); when(reverseTransactionCursor.next()).thenAnswer(new NextTransactionAnswer(transactionsToRecover)); when(transactionCursor.next()).thenAnswer(new NextTransactionAnswer(transactionsToRecover)); when(reverseTransactionCursor.get()).thenReturn(transactionRepresentation); when(transactionCursor.get()).thenReturn(transactionRepresentation); when(transactionRepresentation.CommitEntry).thenReturn(new LogEntryCommit(lastCommittedTransactionId, 1L)); when(recoveryService.RecoveryStartInformation).thenReturn(startInformation); when(recoveryService.GetTransactionsInReverseOrder(recoveryStartPosition)).thenReturn(reverseTransactionCursor); when(recoveryService.GetTransactions(recoveryStartPosition)).thenReturn(transactionCursor); AssertableProgressReporter progressReporter = new AssertableProgressReporter(expectedMax); Recovery recovery = new Recovery(recoveryService, logsTruncator, new LifecycleAdapter(), recoveryMonitor, progressReporter, true); Recovery.init(); progressReporter.Verify(); }
private bool Recover(File storeDir, LogFiles logFiles) { LifeSupport life = new LifeSupport(); RecoveryMonitor monitor = mock(typeof(RecoveryMonitor)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.concurrent.atomic.AtomicBoolean recoveryRequired = new java.util.concurrent.atomic.AtomicBoolean(); AtomicBoolean recoveryRequired = new AtomicBoolean(); try { StorageEngine storageEngine = mock(typeof(StorageEngine)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.entry.LogEntryReader<org.neo4j.kernel.impl.transaction.log.ReadableClosablePositionAwareChannel> reader = new org.neo4j.kernel.impl.transaction.log.entry.VersionAwareLogEntryReader<>(); LogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>(); LogTailScanner tailScanner = GetTailScanner(logFiles, reader); TransactionMetadataCache metadataCache = new TransactionMetadataCache(); LogicalTransactionStore txStore = new PhysicalLogicalTransactionStore(logFiles, metadataCache, reader, _monitors, false); CorruptedLogsTruncator logPruner = new CorruptedLogsTruncator(storeDir, logFiles, FileSystemRule.get()); life.add(new Recovery(new DefaultRecoveryServiceAnonymousInnerClass3(this, storageEngine, tailScanner, _transactionIdStore, txStore, _versionRepository, NO_MONITOR, recoveryRequired) , logPruner, _schemaLife, monitor, SilentProgressReporter.INSTANCE, false)); life.Start(); } finally { life.Shutdown(); } return(recoveryRequired.get()); }
public Recovery(RecoveryService recoveryService, CorruptedLogsTruncator logsTruncator, Lifecycle schemaLife, RecoveryMonitor monitor, ProgressReporter progressReporter, bool failOnCorruptedLogFiles) { this._recoveryService = recoveryService; this._monitor = monitor; this._logsTruncator = logsTruncator; this._schemaLife = schemaLife; this._progressReporter = progressReporter; this._failOnCorruptedLogFiles = failOnCorruptedLogFiles; }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldSeeThatACleanDatabaseShouldNotRequireRecovery() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldSeeThatACleanDatabaseShouldNotRequireRecovery() { File file = _logFiles.getLogFileForVersion(_logVersion); WriteSomeData(file, pair => { LogEntryWriter writer = pair.first(); Consumer <LogPositionMarker> consumer = pair.other(); LogPositionMarker marker = new LogPositionMarker(); // last committed tx consumer.accept(marker); writer.writeStartEntry(0, 1, 2L, 3L, new sbyte[0]); writer.writeCommitEntry(4L, 5L); // check point consumer.accept(marker); writer.writeCheckPointEntry(marker.newPosition()); return(true); }); LifeSupport life = new LifeSupport(); RecoveryMonitor monitor = mock(typeof(RecoveryMonitor)); try { StorageEngine storageEngine = mock(typeof(StorageEngine)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.entry.LogEntryReader<org.neo4j.kernel.impl.transaction.log.ReadableClosablePositionAwareChannel> reader = new org.neo4j.kernel.impl.transaction.log.entry.VersionAwareLogEntryReader<>(); LogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>(); LogTailScanner tailScanner = GetTailScanner(_logFiles, reader); TransactionMetadataCache metadataCache = new TransactionMetadataCache(); LogicalTransactionStore txStore = new PhysicalLogicalTransactionStore(_logFiles, metadataCache, reader, _monitors, false); CorruptedLogsTruncator logPruner = new CorruptedLogsTruncator(_storeDir, _logFiles, FileSystemRule.get()); life.add(new Recovery(new DefaultRecoveryServiceAnonymousInnerClass2(this, storageEngine, tailScanner, _transactionIdStore, txStore, _versionRepository, NO_MONITOR) , logPruner, _schemaLife, monitor, SilentProgressReporter.INSTANCE, false)); life.Start(); verifyZeroInteractions(monitor); } finally { life.Shutdown(); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRecoverExistingData() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldRecoverExistingData() { File file = _logFiles.getLogFileForVersion(_logVersion); WriteSomeData(file, pair => { LogEntryWriter writer = pair.first(); Consumer <LogPositionMarker> consumer = pair.other(); LogPositionMarker marker = new LogPositionMarker(); // last committed tx consumer.accept(marker); LogPosition lastCommittedTxPosition = marker.newPosition(); writer.writeStartEntry(0, 1, 2L, 3L, new sbyte[0]); _lastCommittedTxStartEntry = new LogEntryStart(0, 1, 2L, 3L, new sbyte[0], lastCommittedTxPosition); writer.writeCommitEntry(4L, 5L); _lastCommittedTxCommitEntry = new LogEntryCommit(4L, 5L); // check point pointing to the previously committed transaction writer.writeCheckPointEntry(lastCommittedTxPosition); _expectedCheckPointEntry = new CheckPoint(lastCommittedTxPosition); // tx committed after checkpoint consumer.accept(marker); writer.writeStartEntry(0, 1, 6L, 4L, new sbyte[0]); _expectedStartEntry = new LogEntryStart(0, 1, 6L, 4L, new sbyte[0], marker.newPosition()); writer.writeCommitEntry(5L, 7L); _expectedCommitEntry = new LogEntryCommit(5L, 7L); return(true); }); LifeSupport life = new LifeSupport(); RecoveryMonitor monitor = mock(typeof(RecoveryMonitor)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final java.util.concurrent.atomic.AtomicBoolean recoveryRequired = new java.util.concurrent.atomic.AtomicBoolean(); AtomicBoolean recoveryRequired = new AtomicBoolean(); try { StorageEngine storageEngine = mock(typeof(StorageEngine)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.entry.LogEntryReader<org.neo4j.kernel.impl.transaction.log.ReadableClosablePositionAwareChannel> reader = new org.neo4j.kernel.impl.transaction.log.entry.VersionAwareLogEntryReader<>(); LogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>(); LogTailScanner tailScanner = GetTailScanner(_logFiles, reader); TransactionMetadataCache metadataCache = new TransactionMetadataCache(); LogicalTransactionStore txStore = new PhysicalLogicalTransactionStore(_logFiles, metadataCache, reader, _monitors, false); CorruptedLogsTruncator logPruner = new CorruptedLogsTruncator(_storeDir, _logFiles, FileSystemRule.get()); life.add(new Recovery(new DefaultRecoveryServiceAnonymousInnerClass(this, storageEngine, tailScanner, _transactionIdStore, txStore, _versionRepository, NO_MONITOR, recoveryRequired) , logPruner, _schemaLife, monitor, SilentProgressReporter.INSTANCE, false)); life.Start(); InOrder order = inOrder(monitor); order.verify(monitor, times(1)).recoveryRequired(any(typeof(LogPosition))); order.verify(monitor, times(1)).recoveryCompleted(2); assertTrue(recoveryRequired.get()); } finally { life.Shutdown(); } }