ai-yang opened a new pull request, #10738:
URL: https://github.com/apache/rocketmq/pull/10738

   ### Which Issue(s) This PR Fixes
   
   - Fixes #10737
   
   ### Brief Description
   
   `MqClientAdminImpl` used `thenAccept` to complete a separate result future 
and ignored the dependent stage. An exceptional remoting completion skipped the 
handler, while a decoder/handler exception completed only that ignored stage; 
in both cases the future returned to the caller remained pending.
   
   Add one generic response bridge and use it for all 19 asynchronous admin 
operations. The bridge propagates the upstream remoting throwable and completes 
the public future exceptionally if existing response handling throws. Normal 
SUCCESS and non-SUCCESS response-code behavior is unchanged, and there is no 
public API or protocol change.
   
   ### How Did You Test This Change?
   
   - Mocked one manually controlled remoting future across all 19 operations: 
the previous implementation left all public futures pending; the regression 
failed 5/5.
   - Added a SUCCESS/null-body decoder failure path: the previous 
implementation left the public future pending; the regression failed 5/5.
   - With the fix, the focused tests passed 20/20.
   - Complete `MqClientAdminImplTest`: 41/41 passed.
   - Complete JDK 8 client reactor: 995 tests, 0 failures, 0 errors, 1 skipped.
   - Maven `validate` / Checkstyle: 0 violations across common, remoting, and 
client.
   - SpotBugs: `BugInstance=0`, `Error=0` across common, remoting, and client.
   - `git diff --check`: passed.
   


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