| Recently, I notice that during the logou process there is a strage behaveior: sometimes in the initiator side's log file there is an unsend logon message. I think the cause is: when the initiator receive an logout from acceptor, it will call disconnect method. In the  disconnect method, it will setResponder(null), then set sessionstate as the initial state and it ends. Between it sets sessionstate as the initial state and it ends. Another thread session timer thread happenedly executes at  if (!state.isLogonReceived()) {
 if (state.isLogonSendNeeded())
 then, it will send a logon message, but it will not succeed because the Iosession has been closed.
 My solution is        if (!state.isLogonReceived()&&hasResponder()) {
 if (state.isLogonSendNeeded()) {
 
 |