Lanayx commented on a change in pull request #6345: [Java Reader Client] Start
reader inside batch result in read first message in batch.
URL: https://github.com/apache/pulsar/pull/6345#discussion_r394247606
##########
File path:
pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java
##########
@@ -1520,7 +1536,10 @@ public void seek(long timestamp) throws
PulsarClientException {
cnx.sendRequestWithId(seek, requestId).thenRun(() -> {
log.info("[{}][{}] Successfully reset subscription to message id
{}", topic, subscription, messageId);
acknowledgmentsGroupingTracker.flushAndClean();
- lastDequeuedMessage = messageId;
+
+ seekMessageId = new BatchMessageIdImpl((MessageIdImpl) messageId);
+ duringSeek.set(true);
Review comment:
Hi! Looks like this commit is a breaking change, it broke my unit test for
Reader. The logic of unit test is as follows
1) Read 10 messages
2) Seek back to the first
3) Read 10 messages again
Earlier `hasMessageAvailableAsync` returned true on [this line](url) because
`lastDequeuedMessage` was reset, but now it returns false which leads to
getLastMessageIdAsync execution. And because seek drops connection,
`getLastMessageIdAsync` fails for me with server error "_Error: MetadataError.
Message: Consumer not found_", sot the test fails
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services