private ScheduledFuture<?> checkpointFlusherFuture;
private ScheduledFuture<?> dirtyLogFlushFuture;
private ScheduledFuture<?> logRetentionFuture;
private ScheduledFuture<?> offsetFlusherFuture;
private volatile boolean shuttingDown;
<BUG>private final AtomicReference<ThrottleState> throttleState = new AtomicReference<>();
@Inject</BUG>
public KafkaJournal(@Named("message_journal_dir") File journalDirectory,
@Named("scheduler") ScheduledExecutorService scheduler,
@Named("message_journal_segment_size") Size segmentSize,

private ScheduledFuture<?> checkpointFlusherFuture;
private ScheduledFuture<?> dirtyLogFlushFuture;
private ScheduledFuture<?> logRetentionFuture;
private ScheduledFuture<?> offsetFlusherFuture;
private volatile boolean shuttingDown;
private final AtomicReference<ThrottleState> throttleState = new AtomicReference<>();
private final AtomicInteger purgedSegmentsInLastRetention = new AtomicInteger();
@Inject
public KafkaJournal(@Named("message_journal_dir") File journalDirectory,
@Named("scheduler") ScheduledExecutorService scheduler,
@Named("message_journal_segment_size") Size segmentSize,
