This is an automated email from the ASF dual-hosted git repository.

mattisonchao pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.9 by this push:
     new ca643cafc12 Fix branch-2.9 compatible issue. (#16779)
ca643cafc12 is described below

commit ca643cafc12650f914c647480314b9630cf94fbc
Author: Qiang Zhao <[email protected]>
AuthorDate: Mon Jul 25 21:13:26 2022 +0800

    Fix branch-2.9 compatible issue. (#16779)
---
 .../org/apache/pulsar/broker/admin/AdminResource.java     | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
index fef7abf6d07..415ab2f97d1 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
@@ -746,14 +746,15 @@ public abstract class AdminResource extends 
PulsarWebResource {
     }
 
     protected void resumeAsyncResponseExceptionally(AsyncResponse 
asyncResponse, Throwable throwable) {
-        if (throwable instanceof WebApplicationException) {
-            asyncResponse.resume(throwable);
-        } else if (throwable instanceof 
BrokerServiceException.NotAllowedException) {
-            asyncResponse.resume(new RestException(Status.CONFLICT, 
throwable));
-        } else if (throwable instanceof PulsarAdminException) {
-            asyncResponse.resume(new RestException(((PulsarAdminException) 
throwable)));
+        Throwable realCause = FutureUtil.unwrapCompletionException(throwable);
+        if (realCause instanceof WebApplicationException) {
+            asyncResponse.resume(realCause);
+        } else if (realCause instanceof 
BrokerServiceException.NotAllowedException) {
+            asyncResponse.resume(new RestException(Status.CONFLICT, 
realCause));
+        } else if (realCause instanceof PulsarAdminException) {
+            asyncResponse.resume(new RestException(((PulsarAdminException) 
realCause)));
         } else {
-            asyncResponse.resume(new RestException(throwable));
+            asyncResponse.resume(new RestException(realCause));
         }
     }
 

Reply via email to