lhotari commented on code in PR #24020:
URL: https://github.com/apache/pulsar/pull/24020#discussion_r1981105551


##########
pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java:
##########
@@ -2303,8 +2305,13 @@ private CompletableFuture<Producer<byte[]>> 
initDeadLetterProducerIfNeeded() {
                                                         this.consumerName, 
RandomStringUtils.randomAlphanumeric(5)))
                                         .blockIfQueueFull(false)
                                         .enableBatching(false)
-                                        .enableChunking(true)
-                                        .createAsync();
+                                        .enableChunking(true);
+                        if 
(deadLetterPolicy.getDeadLetterProducerBuilderCustomizer() != null) {
+                            DeadLetterProducerBuilderContext context = new 
DeadLetterProducerBuilderContextImpl(
+                                    deadLetterPolicy.getDeadLetterTopic(), 
topic, subscription, consumerName);
+                            
deadLetterPolicy.getDeadLetterProducerBuilderCustomizer().customize(context, 
builder);
+                        }

Review Comment:
   since this code is duplicated also for the retry letter case, it would be 
possible to extract a private method.
   
   ```java
       private void 
customizeDeadLetterProducerBuilder(DeadLetterProducerBuilderCustomizer 
customizer,
                                                       String 
deadLetterOrRetryLetterTopic,
                                                       ProducerBuilder<byte[]> 
builder) {
           if (customizer != null) {
               DeadLetterProducerBuilderContext context = new 
DeadLetterProducerBuilderContextImpl(
                       deadLetterOrRetryLetterTopic, topic, subscription, 
consumerName);
               customizer.customize(context, builder);
           }
       }
   ```
   
   could be called here with
   ```java
                           
customizeDeadLetterProducerBuilder(deadLetterPolicy.getDeadLetterProducerBuilderCustomizer(),
                                   deadLetterPolicy.getDeadLetterTopic(), 
builder);
   ```                                
   
   and in the retry letter case
   
   ```java
   
   
customizeDeadLetterProducerBuilder(deadLetterPolicy.getRetryLetterProducerBuilderCustomizer(),
                                   deadLetterPolicy.getRetryLetterTopic(), 
builder);
   
   ```
   



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

Reply via email to