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