qinliujie created ROCKETMQ-35:
---------------------------------

             Summary: Consumer client can’t persist consume offset table to 
Broker
                 Key: ROCKETMQ-35
                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-35
             Project: Apache RocketMQ
          Issue Type: Bug
          Components: rocketmq-client
    Affects Versions: 4.0.0-incubating
            Reporter: qinliujie
            Assignee: Xiaorui Wang
            Priority: Critical


RocketMQ version:4.0.0-SNAPSHOT

When I use the consumer which in example/quickstart and used 
MessageListenerConcurrently MessageListener,I found that the consumer would 
reconsume message when I restarted it everytime.That is no sense,So I printed 
the log,found that when the consumer used RemoteBrokerOffsetStore to persist 
the consume offset table which always be zero.


I found that the inner class ConsumeRequest in 
ConsumeMessageConcurrentlyService class has a bug in it.

Let's have a see.

```java 
consumeMessageContext.getProps().put(MixAll.CONSUME_CONTEXT_TYPE, 
returnType.name());
```

the consumeMessageContext not null only when 
ConsumeMessageConcurrentlyService.this.defaultMQPushConsumerImpl.hasHook() be 
TRUE.In the code,there is no IF clause,So,sometime will be cause NPE and can't 
update the consume offset table.

Solution:

Just remove the code above.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to