This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 6580915 Redirect Get message by id request when broker not serve for
the topic (#7786)
6580915 is described below
commit 6580915c2d631fa322a7c2631bc0f1c49b15b957
Author: Rudy Steiner <[email protected]>
AuthorDate: Tue Aug 18 04:47:16 2020 +0800
Redirect Get message by id request when broker not serve for the topic
(#7786)
Fixes #7604
Master Issue: #7604
### Motivation
We should redirect Get message by id request when a broker doesn't serve
for the topic
### Modifications
* Redirect Get message by id request when a broker doesn't serve for the
topic
* ~~Test log config use log4j2.xml not logback.xml
config by parent pom: -Dlog4j.configurationFile=log4j2.xml~~
### Verifying this change
This change is a trivial change without any test coverage.
---
.../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
index ab2b7ba..f6010f1 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
@@ -1959,11 +1959,11 @@ public class PersistentTopicsBase extends AdminResource
{
protected void internalGetMessageById(AsyncResponse asyncResponse, long
ledgerId, long entryId,
boolean authoritative) {
- verifyReadOperation(authoritative);
-
- PersistentTopic topic = (PersistentTopic) getTopicReference(topicName);
- ManagedLedgerImpl ledger = (ManagedLedgerImpl)
topic.getManagedLedger();
try {
+ // will redirect if the topic not owned by current broker
+ validateReadOperationOnTopic(authoritative);
+ PersistentTopic topic = (PersistentTopic)
getTopicReference(topicName);
+ ManagedLedgerImpl ledger = (ManagedLedgerImpl)
topic.getManagedLedger();
ledger.asyncReadEntry(new PositionImpl(ledgerId, entryId), new
AsyncCallbacks.ReadEntryCallback() {
@Override
public void readEntryFailed(ManagedLedgerException exception,
Object ctx) {