-
Notifications
You must be signed in to change notification settings - Fork 189
Closed
vert-x3/vertx-mqtt
#197Labels
Description
Assuming there is successfully connected MQTT connection, which then just dies. In the log you can see a NPE (`NullPointerException') and the client never reconnects.
2021-04-28 12:50:12,161 ERROR [io.sma.rea.mes.mqtt] (vert.x-eventloop-thread-0) SRMSG17103: An error has been caught while sending a MQTT message to the broker: java.lang.NullPointerException
Full exception stack trace
2021-04-28 12:50:12,161 ERROR [io.sma.rea.mes.mqtt] (vert.x-eventloop-thread-0) SRMSG17103: An error has been caught while sending a MQTT message to the broker: java.lang.NullPointerException
at io.vertx.mqtt.impl.MqttClientImpl.write(MqttClientImpl.java:785)
at io.vertx.mqtt.impl.MqttClientImpl.disconnect(MqttClientImpl.java:298)
at io.vertx.mqtt.impl.MqttClientImpl.disconnect(MqttClientImpl.java:279)
at io.vertx.mutiny.mqtt.MqttClient.disconnectAndForget(MqttClient.java:564)
at io.smallrye.reactive.messaging.mqtt.MqttSink.lambda$new$4(MqttSink.java:78)
at io.smallrye.context.impl.wrappers.SlowContextualRunnable.run(SlowContextualRunnable.java:19)
at io.smallrye.mutiny.operators.multi.MultiOnCompletionInvoke$MultiOnCompletionInvokeProcessor.onCompletion(MultiOnCompletionInvoke.java:36)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.handleTerminationIfDone(MultiFlatMapOp.java:514)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.ifDoneOrCancelled(MultiFlatMapOp.java:486)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drainLoop(MultiFlatMapOp.java:286)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drain(MultiFlatMapOp.java:266)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onCompletion(MultiFlatMapOp.java:220)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.handleTerminationIfDone(MultiFlatMapOp.java:514)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.ifDoneOrCancelled(MultiFlatMapOp.java:486)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drainLoop(MultiFlatMapOp.java:286)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drain(MultiFlatMapOp.java:266)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onCompletion(MultiFlatMapOp.java:220)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.streams.utils.ConnectableProcessor.onComplete(ConnectableProcessor.java:129)
at org.eclipse.microprofile.reactive.streams.operators.CompletionSubscriber$1DefaultCompletionSubscriber.onComplete(CompletionSubscriber.java:95)
at org.eclipse.microprofile.reactive.streams.operators.CompletionSubscriber$1DefaultCompletionSubscriber.onComplete(CompletionSubscriber.java:95)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.handleTerminationIfDone(MultiFlatMapOp.java:514)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.ifDoneOrCancelled(MultiFlatMapOp.java:486)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drainLoop(MultiFlatMapOp.java:286)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drain(MultiFlatMapOp.java:266)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onCompletion(MultiFlatMapOp.java:220)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.streams.utils.ConnectableProcessor.onComplete(ConnectableProcessor.java:129)
at io.smallrye.mutiny.streams.utils.WrappedProcessor.onComplete(WrappedProcessor.java:54)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.handleTerminationIfDone(MultiFlatMapOp.java:514)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.ifDoneOrCancelled(MultiFlatMapOp.java:486)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drainLoop(MultiFlatMapOp.java:286)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drain(MultiFlatMapOp.java:266)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onCompletion(MultiFlatMapOp.java:220)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.streams.utils.ConnectableProcessor.onComplete(ConnectableProcessor.java:129)
at io.smallrye.mutiny.streams.utils.WrappedProcessor.onComplete(WrappedProcessor.java:54)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.operators.multi.multicast.MultiPublishOp$PublishSubscriber.isEmptyOrCompleted(MultiPublishOp.java:315)
at io.smallrye.mutiny.operators.multi.multicast.MultiPublishOp$PublishSubscriber.drain(MultiPublishOp.java:381)
at io.smallrye.mutiny.operators.multi.multicast.MultiPublishOp$PublishSubscriber.onCompletion(MultiPublishOp.java:195)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.handleTerminationIfDone(MultiFlatMapOp.java:514)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.ifDoneOrCancelled(MultiFlatMapOp.java:486)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drainLoop(MultiFlatMapOp.java:286)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.drain(MultiFlatMapOp.java:266)
at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onCompletion(MultiFlatMapOp.java:220)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.streams.utils.ConnectableProcessor.onComplete(ConnectableProcessor.java:129)
at io.smallrye.mutiny.streams.utils.WrappedProcessor.onComplete(WrappedProcessor.java:54)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.subscription.SafeSubscriber.onComplete(SafeSubscriber.java:167)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.operators.multi.MultiOnCancellationInvoke$MultiOnCancellationInvokeProcessor.onCompletion(MultiOnCancellationInvoke.java:36)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToMulti$FlatMapPublisherSubscriber.onComplete(UniOnItemTransformToMulti.java:69)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.operators.uni.UniOnItemTransformToMulti$FlatMapPublisherSubscriber.onComplete(UniOnItemTransformToMulti.java:69)
at io.smallrye.mutiny.helpers.HalfSerializer.onComplete(HalfSerializer.java:75)
at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onCompletion(StrictMultiSubscriber.java:95)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onCompletion(MultiOperatorProcessor.java:74)
at io.smallrye.mutiny.subscription.MultiSubscriber.onComplete(MultiSubscriber.java:83)
at io.smallrye.mutiny.operators.multi.processors.BroadcastProcessor$BroadcastSubscription.onComplete(BroadcastProcessor.java:225)
at io.smallrye.mutiny.operators.multi.processors.BroadcastProcessor.onComplete(BroadcastProcessor.java:164)
at io.smallrye.reactive.messaging.mqtt.Clients$ClientHolder.lambda$new$0(Clients.java:64)
at io.vertx.mqtt.impl.MqttClientImpl.handleClosed(MqttClientImpl.java:806)
at io.vertx.mqtt.impl.MqttClientImpl.lambda$null$1(MqttClientImpl.java:234)
at io.vertx.core.net.impl.ConnectionBase.handleClosed(ConnectionBase.java:353)
at io.vertx.core.net.impl.NetSocketImpl.handleClosed(NetSocketImpl.java:346)
at io.vertx.core.net.impl.VertxHandler.lambda$channelInactive$3(VertxHandler.java:153)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:366)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:229)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:221)
at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:153)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81)
at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:389)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:354)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
at io.netty.handler.stream.ChunkedWriteHandler.channelInactive(ChunkedWriteHandler.java:138)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:389)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:354)
at io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1106)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:818)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:832)