GitHub user asjfoajs closed a discussion: grpc拉取消息时返回空指针异常

grpc拉取时返回CODE: INTERNAL_SERVER_ERROR, MESSAGE: null. NullPointerException. 
org.apache.rocketmq.proxy.grpc.v2.consumer.ReceiveMessageActivity.receiveMessage(ReceiveMessageActivity.java:66)
查看ReceiveMessageActivity.java:66代码
Settings settings = this.grpcClientSettingsManager.getClientSettings(ctx);
Subscription subscription = settings.getSubscription();
查看getClientSettings方法
public Settings getClientSettings(ProxyContext ctx) {
        String clientId = ctx.getClientID();
        Settings settings = getRawClientSettings(clientId);
        if (settings == null) {
            return null;
        }
        if (settings.hasPublishing()) {
            settings = mergeProducerData(settings);
        } else if (settings.hasSubscription()) {
            settings = mergeSubscriptionData(ctx, settings, 
settings.getSubscription().getGroup().getName());
        }
        return mergeMetric(settings);
    } 
感觉应该是 getClientSettings返回空导致 
settings.getSubscription();调用时出现空指针异常,虽然对这段代码加入了try-catch,但是在调用settings.getSubscription();之前,先判断一下settings是否为空,如果为空打印一些日志直接返回,不进行后续操作会比较好一点呢?

GitHub link: https://github.com/apache/rocketmq/discussions/8019

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org

Reply via email to