You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After considerable investigation with Matthias, worked out that the ExceptionHandler probably shouldn't be being used, because the DefaultEH does stuff which is probably useful, or at least we don't understand the implications of not using it. SSL Handshake seems to be done lazily - at the point at which data is first exchanged on the socket. Thus the socket opening is not enough to generate the SSL Handshake Exceptions. Now because of the race between the user thread and the MainLoop as to who first really accesses the socket (could be the user thread sending the header, or the main loop blocking on read), it was not deterministic which thread would get he ssl handshake exception.
So slightly tidied the AMQConnection class so that it doesn't do so many bad things in its constructor, and that we make sure we send the header first, before starting up the MainLoop thread. Thus if the MainLoop thread gets started then we know the SSL Handshake has been done. This means that the exception comes out in the right thread.
Thus also reverted the factory so that you can't set the ExceptionHandler. All tests pass. There were some associated changes elsewhere, which eclipse found.
0 commit comments