ReadPointer readPointer) throws OperationException;
}
abstract class AbstractDisjointDequeueStrategy implements DequeueStrategy {
@Override
<BUG>public QueueState constructQueueState(QueueConsumer consumer, QueueConfig config, ReadPointer readPointer)
</BUG>
throws OperationException {
<BUG>QueueState queueState = new QueueStateImpl();
</BUG>
OperationResult<Map<byte[], byte[]>> stateBytes =

ReadPointer readPointer) throws OperationException;
List<Long> fetchNextEntries(QueueConsumer consumer, QueueConfig config, QueueStateImpl queueState,
ReadPointer readPointer) throws OperationException;
void saveDequeueState(QueueConsumer consumer, QueueConfig config, QueueStateImpl queueState,
ReadPointer readPointer) throws OperationException;
}
abstract class AbstractDisjointDequeueStrategy implements DequeueStrategy {
@Override
public QueueStateImpl constructQueueState(QueueConsumer consumer, QueueConfig config, ReadPointer readPointer)
throws OperationException {
QueueStateImpl queueState = new QueueStateImpl();
OperationResult<Map<byte[], byte[]>> stateBytes =
