If a security exception is raised during a client failover reconnection, SessionFailoverListener.connectionFailed() will be called with a HornetQExceptionType.NOT_CONNECTED exception and a failedOver flag of true. Any sessions associated with the client will also return false when their isClosed() method is called. Atttempting to close the sessions will hang until they timeout.
HornetQException[errorType=SECURITY_EXCEPTION message=HQ119031: Unable to validate user: admin]
at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:388)
at org.hornetq.core.client.impl.ClientSessionImpl.handleFailover(ClientSessionImpl.java:1054)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.reconnectSessions(ClientSessionFactoryImpl.java:1041)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.failoverOrReconnect(ClientSessionFactoryImpl.java:710)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.handleConnectionFailure(ClientSessionFactoryImpl.java:580)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.access$100(ClientSessionFactoryImpl.java:85)
at org.hornetq.core.client.impl.ClientSessionFactoryImpl$1.run(ClientSessionFactoryImpl.java:426)
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:106)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Received SessionFailoverListener parameters:
- exception: HornetQException[errorType=NOT_CONNECTED message=HQ119006: Channel disconnected]
- failedOver: true
HornetQ version: 2.3.0
Notes: in this instance:
- the HornetQ server restarted;
- the client can successfully reconnect to the server
- the security exception is raised because the user password changed during the server restart