//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public boolean visit(ReadableClosablePositionAwareChannel channel) throws java.io.IOException public override bool Visit(ReadableClosablePositionAwareChannel channel) { LogEntry logEntry; LogEntryStart startEntry = null; while ((logEntry = LogEntryReader.readLogEntry(channel)) != null) { switch (logEntry.Type) { case TX_START: startEntry = logEntry.As(); break; case TX_COMMIT: LogEntryCommit commit = logEntry.As(); if (commit.TxId == StartTransactionId) { StartEntryForFoundTransaction = startEntry; CommitTimestamp = commit.TimeWritten; return(false); } default: // just skip commands break; } } return(true); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldParserOnePhaseCommitEntry() throws java.io.IOException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldParserOnePhaseCommitEntry() { // given //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final LogEntryCommit commit = new LogEntryCommit(version, 42, 21); LogEntryCommit commit = new LogEntryCommit(_version, 42, 21); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel channel = new org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel(); InMemoryClosableChannel channel = new InMemoryClosableChannel(); channel.PutLong(commit.TxId); channel.PutLong(commit.TimeWritten); channel.GetCurrentPosition(_marker); // when //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final LogEntryParser parser = version.entryParser(LogEntryByteCodes.TX_COMMIT); LogEntryParser parser = _version.entryParser(LogEntryByteCodes.TxCommit); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final LogEntry logEntry = parser.parse(version, channel, marker, commandReader); LogEntry logEntry = parser.parse(_version, channel, _marker, _commandReader); // then assertEquals(commit, logEntry); assertFalse(parser.skip()); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public org.neo4j.kernel.impl.transaction.log.TransactionMetadataCache.TransactionMetadata getMetadataFor(long transactionId) throws java.io.IOException public override TransactionMetadata GetMetadataFor(long transactionId) { if (transactionId <= BASE_TX_ID) { return(_metadataForEmptyStore); } TransactionMetadata transactionMetadata = _transactionMetadataCache.getTransactionMetadata(transactionId); if (transactionMetadata == null) { using (IOCursor <CommittedTransactionRepresentation> cursor = GetTransactions(transactionId)) { while (cursor.next()) { CommittedTransactionRepresentation tx = cursor.get(); LogEntryCommit commitEntry = tx.CommitEntry; long committedTxId = commitEntry.TxId; long timeWritten = commitEntry.TimeWritten; TransactionMetadata metadata = _transactionMetadataCache.cacheTransactionMetadata(committedTxId, tx.StartEntry.StartPosition, tx.StartEntry.MasterId, tx.StartEntry.LocalId, LogEntryStart.checksum(tx.StartEntry), timeWritten); if (committedTxId == transactionId) { transactionMetadata = metadata; } } } if (transactionMetadata == null) { throw new NoSuchTransactionException(transactionId); } } return(transactionMetadata); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldBeAbleToSkipBadLogEntries() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldBeAbleToSkipBadLogEntries() { // GIVEN AcceptingInvalidLogEntryHandler invalidLogEntryHandler = new AcceptingInvalidLogEntryHandler(); VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>(new RecordStorageCommandReaderFactory(), invalidLogEntryHandler); InMemoryClosableChannel channel = new InMemoryClosableChannel(1_000); LogEntryWriter writer = new LogEntryWriter(channel.Writer()); long startTime = currentTimeMillis(); long commitTime = startTime + 10; writer.WriteStartEntry(1, 2, startTime, 3, new sbyte[0]); // Write command ... int posBefore = channel.WriterPosition(); writer.Serialize(singletonList(new Command.NodeCommand(new NodeRecord(1), (new NodeRecord(1)).initialize(true, 1, false, 2, 0)))); int posAfter = channel.WriterPosition(); // ... which then gets overwritten with invalid data channel.PositionWriter(posBefore); while (channel.WriterPosition() < posAfter) { channel.Put(unchecked (( sbyte )0xFF)); } writer.WriteCommitEntry(4, commitTime); long secondStartTime = startTime + 100; writer.WriteStartEntry(1, 2, secondStartTime, 4, new sbyte[0]); // WHEN LogEntryStart readStartEntry = reader.ReadLogEntry(channel.Reader()).@as(); LogEntryCommit readCommitEntry = reader.ReadLogEntry(channel.Reader()).@as(); LogEntryStart readSecondStartEntry = reader.ReadLogEntry(channel.Reader()).@as(); // THEN assertEquals(1, readStartEntry.MasterId); assertEquals(2, readStartEntry.LocalId); assertEquals(startTime, readStartEntry.TimeWritten); assertEquals(4, readCommitEntry.TxId); assertEquals(commitTime, readCommitEntry.TimeWritten); assertEquals(posAfter - posBefore, invalidLogEntryHandler.BytesSkippedConflict); assertEquals(posAfter - posBefore, invalidLogEntryHandler.InvalidEntryCalls); assertEquals(1, readSecondStartEntry.MasterId); assertEquals(2, readSecondStartEntry.LocalId); assertEquals(secondStartTime, readSecondStartEntry.TimeWritten); }
public override bool Equals(object o) { if (this == o) { return(true); } if (o == null || this.GetType() != o.GetType()) { return(false); } LogEntryCommit commit = ( LogEntryCommit )o; return(_timeWritten == commit._timeWritten && _txId == commit._txId && Name.Equals(commit.Name)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldBeAbleToSkipBadVersionAndTypeBytesInBetweenLogEntries() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldBeAbleToSkipBadVersionAndTypeBytesInBetweenLogEntries() { // GIVEN AcceptingInvalidLogEntryHandler invalidLogEntryHandler = new AcceptingInvalidLogEntryHandler(); VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel> reader = new VersionAwareLogEntryReader <ReadableClosablePositionAwareChannel>(new RecordStorageCommandReaderFactory(), invalidLogEntryHandler); InMemoryClosableChannel channel = new InMemoryClosableChannel(1_000); LogEntryWriter writer = new LogEntryWriter(channel.Writer()); long startTime = currentTimeMillis(); long commitTime = startTime + 10; writer.WriteStartEntry(1, 2, startTime, 3, new sbyte[0]); writer.WriteCommitEntry(4, commitTime); channel.Put(( sbyte )127); channel.Put(( sbyte )126); channel.Put(( sbyte )125); long secondStartTime = startTime + 100; writer.WriteStartEntry(1, 2, secondStartTime, 4, new sbyte[0]); // WHEN LogEntryStart readStartEntry = reader.ReadLogEntry(channel.Reader()).@as(); LogEntryCommit readCommitEntry = reader.ReadLogEntry(channel.Reader()).@as(); LogEntryStart readSecondStartEntry = reader.ReadLogEntry(channel.Reader()).@as(); // THEN assertEquals(1, readStartEntry.MasterId); assertEquals(2, readStartEntry.LocalId); assertEquals(startTime, readStartEntry.TimeWritten); assertEquals(4, readCommitEntry.TxId); assertEquals(commitTime, readCommitEntry.TimeWritten); assertEquals(3, invalidLogEntryHandler.BytesSkippedConflict); assertEquals(3, invalidLogEntryHandler.InvalidEntryCalls); assertEquals(1, readSecondStartEntry.MasterId); assertEquals(2, readSecondStartEntry.LocalId); assertEquals(secondStartTime, readSecondStartEntry.TimeWritten); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReadACommitLogEntry() throws java.io.IOException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldReadACommitLogEntry() { // given LogEntryVersion version = LogEntryVersion.CURRENT; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final LogEntryCommit commit = new LogEntryCommit(version, 42, 21); LogEntryCommit commit = new LogEntryCommit(version, 42, 21); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel channel = new org.neo4j.kernel.impl.transaction.log.InMemoryClosableChannel(); InMemoryClosableChannel channel = new InMemoryClosableChannel(); channel.Put(version.byteCode()); channel.Put(LogEntryByteCodes.TxCommit); channel.PutLong(commit.TxId); channel.PutLong(commit.TimeWritten); // when //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final LogEntry logEntry = logEntryReader.readLogEntry(channel); LogEntry logEntry = _logEntryReader.readLogEntry(channel); // then assertEquals(commit, logEntry); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void writeCommitEntry(LogEntryCommit entry) throws java.io.IOException public virtual void WriteCommitEntry(LogEntryCommit entry) { WriteCommitEntry(entry.TxId, entry.TimeWritten); }
private void InitializeInstanceFields() { _start = new LogEntryStart(0, 0, 0, 0, null, _startPosition); _commit = new LogEntryCommit(_txId, DateTimeHelper.CurrentUnixTimeMillis()); }