lhotari commented on a change in pull request #14087:
URL: https://github.com/apache/pulsar/pull/14087#discussion_r800691821



##########
File path: 
pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java
##########
@@ -755,13 +755,14 @@ protected void 
internalCreatePartitionedTopic(AsyncResponse asyncResponse, int n
         return future;
     }
 
-    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));
+    protected static void resumeAsyncResponseExceptionally(AsyncResponse 
asyncResponse, Throwable exception) {
+        Throwable realCause = FutureUtil.unwrapCompletionException(exception);
+        if (realCause instanceof WebApplicationException) {
+            asyncResponse.resume(realCause);
+        } else if (realCause instanceof 
BrokerServiceException.NotAllowedException) {
+            asyncResponse.resume(new RestException(Status.CONFLICT, 
realCause));

Review comment:
       > I think maybe we need to normalize exceptions and HTTP code after 
refactoring the admin side async code.
   
   yes, that makes sense to handle it separately.




-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to