eolivelli commented on a change in pull request #10025:
URL: https://github.com/apache/pulsar/pull/10025#discussion_r617230010



##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBase.java
##########
@@ -393,29 +425,34 @@ public void reconsumeLaterCumulative(Message<?> message, 
long delayTime, TimeUni
             return FutureUtil.failedFuture(new 
PulsarClientException("reconsumeLater method not support!"));
         }
         try {
-            return doReconsumeLater(message, AckType.Individual, 
Collections.emptyMap(), delayTime, unit);
-        } catch (NullPointerException npe) {
-            return FutureUtil.failedFuture(new 
PulsarClientException.InvalidMessageException(npe.getMessage()));
+            validateMessageId(message);
+        } catch (PulsarClientException e) {
+            return FutureUtil.failedFuture(e);
         }
+        return doReconsumeLater(message, AckType.Individual, 
Collections.emptyMap(), delayTime, unit);
     }
 
     @Override
     public CompletableFuture<Void> reconsumeLaterAsync(Messages<?> messages, 
long delayTime, TimeUnit unit) {
-        try {
-            messages.forEach(message -> reconsumeLaterAsync(message,delayTime, 
unit));
-            return CompletableFuture.completedFuture(null);
-        } catch (NullPointerException npe) {
-            return FutureUtil.failedFuture(new 
PulsarClientException.InvalidMessageException(npe.getMessage()));
+        for (Message<?> message: messages) {

Review comment:
       we should perform validation before actually calling 
`reconsumeLaterAsync`
   otherwise it is possible that `reconsumeLaterAsync` is called only for a 
part of the messages and not for all.
   
   I suggest to per form the validation loop and then leave as before
   ```
   messages.forEach(message -> reconsumeLaterAsync(message,delayTime, unit));
               return CompletableFuture.completedFuture(null);
   ```




-- 
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to