| 
             I'm seeing the following show up when i kill the connection to my FIX destination: 
<20070713-01:24:51, FIX.4.4:test-quote-asker->test-exchange, event> (Forcibly disconnecting session) 
<20070713-01:24:51, FIX.4.4:test-quote-asker->test-exchange, event> (Disconnecting) 
<20070713-01:24:51, FIX.4.4:test-quote-asker->test-exchange, event> (Disconnecting) 
18:24:51,172 ERROR [SocketConnectorIoProcessor-1.0] mina.initiator.InitiatorIoHandler (AbstractIoHandler.java:77) - protocol handler exception 
jjava.lang.NullPointerException 
        at quickfix.Session.disconnect(Session.java:1369) 
        at quickfix.mina.AbstractIoHandler.sessionClosed(AbstractIoHandler.java:99) 
This happens in Session.disconnect(), where we have the following code: 
          if (hasResponder()) { 
                        getLog().onEvent("Disconnecting"); 
NPE>>>>      getResponder().disconnect(); 
both hasResponder() and getResponder() are protected with synchronized(responderSync), but it seems that we have a situation where the responder itself disappears between the call to hasResponder() and when it's being used. 
Perhaps we need to put a bigger lock around the whole test/get/use structure? 
             
         |