[ISSUE #6979] Fix opaque will be duplicate in multi client scene (#6985)

This commit is contained in:
Lei Zhiyuan
2023-07-13 11:17:38 +08:00
committed by GitHub
parent 1f0f3b2d6d
commit d206590692
@@ -235,13 +235,23 @@ public class DefaultMessagingProcessor extends AbstractStartAndShutdown implemen
@Override
public CompletableFuture<RemotingCommand> request(ProxyContext ctx, String brokerName, RemotingCommand request,
long timeoutMillis) {
return this.requestBrokerProcessor.request(ctx, brokerName, request, timeoutMillis);
int originalRequestOpaque = request.getOpaque();
request.setOpaque(RemotingCommand.createNewRequestId());
return this.requestBrokerProcessor.request(ctx, brokerName, request, timeoutMillis).thenApply(r -> {
request.setOpaque(originalRequestOpaque);
return r;
});
}
@Override
public CompletableFuture<Void> requestOneway(ProxyContext ctx, String brokerName, RemotingCommand request,
long timeoutMillis) {
return this.requestBrokerProcessor.requestOneway(ctx, brokerName, request, timeoutMillis);
int originalRequestOpaque = request.getOpaque();
request.setOpaque(RemotingCommand.createNewRequestId());
return this.requestBrokerProcessor.requestOneway(ctx, brokerName, request, timeoutMillis).thenApply(r -> {
request.setOpaque(originalRequestOpaque);
return r;
});
}
@Override