This is an automated email from the ASF dual-hosted git repository.
lhotari 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 3d505742e05 [fix][admin] Fix exception loss in getMessageId method
(#23766)
3d505742e05 is described below
commit 3d505742e05e403144d17aef59c95e2758982a26
Author: danpi <[email protected]>
AuthorDate: Sat Dec 21 19:20:56 2024 +0800
[fix][admin] Fix exception loss in getMessageId method (#23766)
Co-authored-by: houbonan <[email protected]>
---
.../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 7 ++++---
.../java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java | 4 ++++
2 files changed, 8 insertions(+), 3 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 1300cd3449c..4b9fea05cd8 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
@@ -2774,9 +2774,10 @@ public class PersistentTopicsBase extends AdminResource {
public void readEntryFailed(ManagedLedgerException
exception,
Object ctx) {
if (exception instanceof
ManagedLedgerException.LedgerNotExistException) {
- throw new RestException(Status.NOT_FOUND,
"Message id not found");
+ results.completeExceptionally(
+ new RestException(Status.NOT_FOUND,
"Message id not found"));
}
- throw new RestException(exception);
+ results.completeExceptionally(new
RestException(exception));
}
@Override
@@ -2784,7 +2785,7 @@ public class PersistentTopicsBase extends AdminResource {
try {
results.complete(generateResponseWithEntry(entry, (PersistentTopic) topic));
} catch (IOException exception) {
- throw new RestException(exception);
+ results.completeExceptionally(new
RestException(exception));
} finally {
if (entry != null) {
entry.release();
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java
index 30294890344..258c0183114 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java
@@ -1419,6 +1419,10 @@ public class PersistentTopicsTest extends
MockedPulsarServiceBaseTest {
Assert.expectThrows(PulsarAdminException.NotFoundException.class, ()
-> {
admin.topics().getMessageById(topicName1, id2.getLedgerId(),
id2.getEntryId());
});
+
+
Assert.expectThrows(PulsarAdminException.ServerSideErrorException.class, () -> {
+ admin.topics().getMessageById(topicName1, id1.getLedgerId(),
id1.getEntryId() + 10);
+ });
}
@Test