SouthwestAsiaFloat opened a new pull request, #6937:
URL: https://github.com/apache/shenyu/pull/6937
Fixes #6888
## Description
`ShenyuToolCallback` subscribes to the plugin chain asynchronously and waits
for the response with a timeout. However, the `Disposable` returned by
`subscribe()` was not retained, so the downstream plugin chain continued
running after the tool call had already timed out.
This change captures the subscription and disposes it when
`CompletableFuture#get` throws `TimeoutException`, preventing leaked
downstream work and unintended side effects after a timeout response.
## Changes
- Capture the `Disposable` returned by the plugin-chain subscription.
- Dispose the subscription when the tool call times out.
- Preserve the existing default timeout behavior.
- Add a regression test verifying that timeout cancels a non-terminating
Reactor chain.
- [X] You have read the [contribution
guidelines](https://shenyu.apache.org/community/contributor-guide).
- [X] You submit test cases (unit or integration tests) that back your
changes.
- [X] Your local test passed `./mvnw clean install
-Dmaven.javadoc.skip=true`.
--
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]