plusmancn opened a new issue #8733: URL: https://github.com/apache/dubbo/issues/8733
- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate. - [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate. Because of TripleClientHandler working in a new thread, The line `url.getServiceMode` doesn't work in TripleClientHandler with InstanceAddressURL when we try to use application-service-discovery. ```java // => org.apache.dubbo.rpc.protocol.tri.TripleClientHandler#writeRequest private void writeRequest(ChannelHandlerContext ctx, final Request req, final ChannelPromise promise) { final RpcInvocation inv = (RpcInvocation) req.getData(); final URL url = inv.getInvoker().getUrl(); // Here will throw NPE ConsumerModel consumerModel = (ConsumerModel) url.getServiceModel(); // ...... } ``` See InstanceAddressURL: ```java // => org.apache.dubbo.registry.client.InstanceAddressURL#getServiceModel public ServiceModel getServiceModel() { return RpcContext.getServiceContext().getConsumerUrl().getServiceModel(); } // => org.apache.dubbo.rpc.RpcContext private static final InternalThreadLocal<RpcServiceContext> SERVICE_CONTEXT = new InternalThreadLocal<RpcServiceContext>() { @Override protected RpcServiceContext initialValue() { return new RpcServiceContext(); } }; ``` -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
