@Override public AppendMessageResult<MessageSequence> doAppend(long baseOffset, ByteBuffer targetBuffer, int freeSpace, PullLogMessage message) { workingBuffer.clear(); final long wroteOffset = baseOffset + targetBuffer.position(); workingBuffer.flip(); workingBuffer.limit(PULL_LOG_UNIT_BYTES); workingBuffer.putLong(message.getMessageSequence()); targetBuffer.put(workingBuffer.array(), 0, PULL_LOG_UNIT_BYTES); final long messageIndex = wroteOffset / PULL_LOG_UNIT_BYTES; return new AppendMessageResult<>(AppendMessageStatus.SUCCESS, wroteOffset, PULL_LOG_UNIT_BYTES, new MessageSequence(messageIndex, wroteOffset)); } }