From ca643cafc12650f914c647480314b9630cf94fbc Mon Sep 17 00:00:00 2001 From: Qiang Zhao Date: Mon, 25 Jul 2022 21:13:26 +0800 Subject: [PATCH] Fix branch-2.9 compatible issue. (#16779) --- .../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 fef7abf6d0711..415ab2f97d107 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 @@ private CompletableFuture provisionPartitionedTopicPath(AsyncResponse asyn } 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)); } }