Source:
<code>public synchronized void resetServer(CorfuPayloadMsg<SequencerTailsRecoveryMsg> msg, ChannelHandlerContext ctx, IServerRouter r) { long initialToken = msg.getPayload().getGlobalTail(); Map<UUID, Long> streamTails = msg.getPayload().getStreamTails(); <START> long bootstrapMsgEpoch = msg.getPayload().getSequencerEpoch(); <END> final boolean bootstrapWithoutTailsUpdate = msg.getPayload() .getBootstrapWithoutTailsUpdate(); if (bootstrapWithoutTailsUpdate && (sequencerEpoch == Layout.INVALID_EPOCH || bootstrapMsgEpoch != sequencerEpoch + 1)) { log.warn("Cannot update existing sequencer. Require full bootstrap. SequencerEpoch : {}, MsgEpoch : {}", sequencerEpoch, bootstrapMsgEpoch ); r.sendResponse(ctx, msg, CorfuMsgType.NACK.msg()); return; } if (serverContext.getSequencerEpoch() >= bootstrapMsgEpoch) { log.info("Sequencer already bootstrapped at epoch {}. Discarding bootstrap request with epoch {}", sequencerEpoch, bootstrapMsgEpoch ); r.sendResponse(ctx, msg, CorfuMsgType.NACK.msg()); return; } if (!bootstrapWithoutTailsUpdate) { cache.invalidate(); globalLogTail.set(initialToken); cache.updateMaxConflictAddress(initialToken - 1); streamTailToGlobalTailMap.clear(); streamTailToGlobalTailMap.putAll(streamTails); } sequencerEpoch = bootstrapMsgEpoch; serverContext.setSequencerEpoch(bootstrapMsgEpoch); log.info("Sequencer reset with token = {}, size streamTailToGlobalTailMap = {}, sequencerEpoch = {}", globalLogTail.get(), streamTailToGlobalTailMap.size(), streamTailToGlobalTailMap, sequencerEpoch); r.sendResponse(ctx, msg, CorfuMsgType.ACK.msg()); }</code><technical_language>remove final qualifier</technical_language>

Target:
public synchronized void resetServer(CorfuPayloadMsg<SequencerTailsRecoveryMsg> msg, ChannelHandlerContext ctx, IServerRouter r) { final long initialToken = msg.getPayload().getGlobalTail(); final Map<UUID, Long> streamTails = msg.getPayload().getStreamTails(); final long bootstrapMsgEpoch = msg.getPayload().getSequencerEpoch(); final boolean bootstrapWithoutTailsUpdate = msg.getPayload() .getBootstrapWithoutTailsUpdate(); if (bootstrapWithoutTailsUpdate && (sequencerEpoch == Layout.INVALID_EPOCH || bootstrapMsgEpoch != sequencerEpoch + 1)) { log.warn("Cannot update existing sequencer. Require full bootstrap. SequencerEpoch : {}, MsgEpoch : {}", sequencerEpoch, bootstrapMsgEpoch ); r.sendResponse(ctx, msg, CorfuMsgType.NACK.msg()); return; } if (serverContext.getSequencerEpoch() >= bootstrapMsgEpoch) { log.info("Sequencer already bootstrapped at epoch {}. Discarding bootstrap request with epoch {}", sequencerEpoch, bootstrapMsgEpoch ); r.sendResponse(ctx, msg, CorfuMsgType.NACK.msg()); return; } if (!bootstrapWithoutTailsUpdate) { cache.invalidateAll(); globalLogTail.set(initialToken); cache.updateMaxConflictAddress(initialToken - 1); streamTailToGlobalTailMap.clear(); streamTailToGlobalTailMap.putAll(streamTails); } sequencerEpoch = bootstrapMsgEpoch; serverContext.setSequencerEpoch(bootstrapMsgEpoch); log.info("Sequencer reset with token = {}, size streamTailToGlobalTailMap = {}, sequencerEpoch = {}", globalLogTail.get(), streamTailToGlobalTailMap.size(), streamTailToGlobalTailMap, sequencerEpoch); r.sendResponse(ctx, msg, CorfuMsgType.ACK.msg()); }