[ 
https://issues.apache.org/jira/browse/QPIDJMS-549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17459193#comment-17459193
 ] 

ASF subversion and git services commented on QPIDJMS-549:
---------------------------------------------------------

Commit 763316dc3028795d463c74a2e0ea1f41fa9de7bd in qpid-jms's branch 
refs/heads/0.x from Robbie Gemmell
[ https://gitbox.apache.org/repos/asf?p=qpid-jms.git;h=763316d ]

QPIDJMS-549: use retained ref that isnt nulled during failover, and avoid 
multiple signals to the related code that let it NPE more than once

(cherry picked from commit 2f6bde0a388cd1431cacb154ba55a78c22e263af)


> NPE logged during failover after remote close during connection creation
> ------------------------------------------------------------------------
>
>                 Key: QPIDJMS-549
>                 URL: https://issues.apache.org/jira/browse/QPIDJMS-549
>             Project: Qpid JMS
>          Issue Type: Bug
>          Components: qpid-jms-client
>    Affects Versions: 0.59.0, 1.2.0
>            Reporter: Gary Tully
>            Assignee: Robbie Gemmell
>            Priority: Minor
>             Fix For: 1.3.0
>
>
> An NPE can be logged during failover handling after a remote closure/redirect 
> during connection creation. The NPE is it itself also handled and so the 
> connection does still get established to the other peer as it should be, but 
> with the NPE(s) logged.
> {code:java}
> [WARNING] Caught problem during update processing: null
> java.lang.NullPointerException
>     at 
> org.apache.qpid.jms.provider.failover.FailoverProvider$CreateConnectionRequest.onFailure
>  (FailoverProvider.java:1299)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider$2$1.onFailure 
> (AmqpProvider.java:459)
>     at 
> org.apache.qpid.jms.provider.amqp.builders.AmqpConnectionBuilder$1$1.onFailure
>  (AmqpConnectionBuilder.java:91)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.fireProviderException 
> (AmqpProvider.java:1159)
>     at org.apache.qpid.jms.provider.amqp.AmqpAbstractResource.closeResource 
> (AmqpAbstractResource.java:185)
>     at org.apache.qpid.jms.provider.amqp.AmqpConnection.processRemoteClose 
> (AmqpConnection.java:151)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates 
> (AmqpProvider.java:962)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData 
> (AmqpProvider.java:872)
>     at 
> org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0
>  (NettyTcpTransport.java:563)
>     at 
> org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0
>  (NettyTcpTransport.java:556)
>     at io.netty.channel.SimpleChannelInboundHandler.channelRead 
> (SimpleChannelInboundHandler.java:99)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead 
> (AbstractChannelHandlerContext.java:357)
>     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead 
> (DefaultChannelPipeline.java:1410)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.DefaultChannelPipeline.fireChannelRead 
> (DefaultChannelPipeline.java:919)
>     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read 
> (AbstractNioByteChannel.java:166)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKey 
> (NioEventLoop.java:719)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized 
> (NioEventLoop.java:655)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeys 
> (NioEventLoop.java:581)
>     at io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:493)
>     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run 
> (SingleThreadEventExecutor.java:986)
>     at io.netty.util.internal.ThreadExecutorMap$2.run 
> (ThreadExecutorMap.java:74)
>     at java.lang.Thread.run (Thread.java:748)
> [WARNING] Caught problem during data processing: null
> java.lang.NullPointerException
>     at 
> org.apache.qpid.jms.provider.failover.FailoverProvider$CreateConnectionRequest.onFailure
>  (FailoverProvider.java:1299)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider$2$1.onFailure 
> (AmqpProvider.java:459)
>     at 
> org.apache.qpid.jms.provider.amqp.builders.AmqpConnectionBuilder$1$1.onFailure
>  (AmqpConnectionBuilder.java:91)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.fireProviderException 
> (AmqpProvider.java:1159)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates 
> (AmqpProvider.java:1040)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData 
> (AmqpProvider.java:872)
>     at 
> org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0
>  (NettyTcpTransport.java:563)
>     at 
> org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0
>  (NettyTcpTransport.java:556)
>     at io.netty.channel.SimpleChannelInboundHandler.channelRead 
> (SimpleChannelInboundHandler.java:99)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead 
> (AbstractChannelHandlerContext.java:357)
>     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead 
> (DefaultChannelPipeline.java:1410)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead 
> (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.DefaultChannelPipeline.fireChannelRead 
> (DefaultChannelPipeline.java:919)
>     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read 
> (AbstractNioByteChannel.java:166)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKey 
> (NioEventLoop.java:719)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized 
> (NioEventLoop.java:655)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeys 
> (NioEventLoop.java:581)
>     at io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:493)
>     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run 
> (SingleThreadEventExecutor.java:986)
>     at io.netty.util.internal.ThreadExecutorMap$2.run 
> (ThreadExecutorMap.java:74)
>     at java.lang.Thread.run (Thread.java:748)
> [INFO] Transport failed: null
> {code}
> scenario is two connection on the same failover connection factory where both 
> are remotely closed - scenario is Artemis redirector rejecting the connection.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to