private void backupCorruptedContent( long recoveredTransactionLogVersion, long recoveredTransactionOffset ) throws IOException { File corruptedLogArchive = getArchiveFile( recoveredTransactionLogVersion, recoveredTransactionOffset ); try ( ZipOutputStream recoveryContent = new ZipOutputStream( new BufferedOutputStream( fs.openAsOutputStream( corruptedLogArchive, false ) ) ) ) { ByteBuffer zipBuffer = ByteBuffer.allocate( (int) ByteUnit.mebiBytes( 1 ) ); copyTransactionLogContent( recoveredTransactionLogVersion, recoveredTransactionOffset, recoveryContent, zipBuffer ); forEachSubsequentLogFile( recoveredTransactionLogVersion, fileIndex -> { try { copyTransactionLogContent( fileIndex, 0, recoveryContent, zipBuffer ); } catch ( IOException io ) { throw new UncheckedIOException( io ); } } ); } }
private void backupCorruptedContent( long recoveredTransactionLogVersion, long recoveredTransactionOffset ) throws IOException { File corruptedLogArchive = getArchiveFile( recoveredTransactionLogVersion, recoveredTransactionOffset ); try ( ZipOutputStream recoveryContent = new ZipOutputStream( new BufferedOutputStream( fs.openAsOutputStream( corruptedLogArchive, false ) ) ) ) { ByteBuffer zipBuffer = ByteBuffer.allocate( (int) ByteUnit.mebiBytes( 1 ) ); copyTransactionLogContent( recoveredTransactionLogVersion, recoveredTransactionOffset, recoveryContent, zipBuffer ); forEachSubsequentLogFile( recoveredTransactionLogVersion, fileIndex -> { try { copyTransactionLogContent( fileIndex, 0, recoveryContent, zipBuffer ); } catch ( IOException io ) { throw new UncheckedIOException( io ); } } ); } }