fmiguelez opened a new issue #7046:
URL: https://github.com/apache/pulsar/issues/7046


   If we try to create a consumer with `SubscriptionMode.NonDurable`  it will 
fail with a `NullPointerException`.
   
   We try to mimic the behaviour of Reader with partitioned topics. 
   
   It can be reproduced this way:
   
   ```
                        final Consumer<T> consumer = 
client.newConsumer(schema).topic(topicUri)
                                        .readCompacted(true)
                                        
.subscriptionMode(SubscriptionMode.NonDurable) 
                                           
.subscriptionType(SubscriptionType.Exclusive)
                                           .subscriptionName(subscription)
                                        
.subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)
                                           .subscribe();
   ```
   
   The exception throw is the following:
   
   ```
        java.util.concurrent.CompletionException: 
org.apache.pulsar.client.api.PulsarClientException: 
java.util.concurrent.CompletionException: java.lang.NullPointerException
                at 
java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:292)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:308)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.biRelay(CompletableFuture.java:1284) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture$BiRelay.tryFire(CompletableFuture.java:1270)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture$CoCompletion.tryFire(CompletableFuture.java:1020)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
 ~[na:1.8.0_111]
                at 
org.apache.pulsar.client.impl.ConsumerImpl.connectionFailed(ConsumerImpl.java:738)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.client.impl.ConnectionHandler.handleConnectionError(ConnectionHandler.java:78)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) 
~[na:1.8.0_111]
                at 
org.apache.pulsar.client.impl.BinaryProtoLookupService.lambda$null$2(BinaryProtoLookupService.java:127)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) 
~[na:1.8.0_111]
                at 
org.apache.pulsar.client.impl.ClientCnx.handleLookupResponse(ClientCnx.java:480)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:132)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.shade.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_111]
        Caused by: org.apache.pulsar.client.api.PulsarClientException: 
java.util.concurrent.CompletionException: java.lang.NullPointerException
                ... 33 common frames omitted
        Caused by: java.util.concurrent.CompletionException: 
java.lang.NullPointerException
                at 
java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
 ~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:659) 
~[na:1.8.0_111]
                at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
 ~[na:1.8.0_111]
                ... 30 common frames omitted
        Caused by: java.lang.NullPointerException: null
                at 
org.apache.pulsar.client.impl.ConsumerImpl.connectionOpened(ConsumerImpl.java:586)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
org.apache.pulsar.client.impl.ConnectionHandler.lambda$grabCnx$0(ConnectionHandler.java:68)
 ~[pulsar-client-2.5.2.jar:2.5.2]
                at 
java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) 
~[na:1.8.0_111]
                ... 31 common frames omitted            
   ```


----------------------------------------------------------------
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:
us...@infra.apache.org


Reply via email to