jmsClients.remove(jmsClientId);
   public synchronized void handleClientFailure(String remotingSessionID)   {      String jmsClientId = (String)sessions.get(remotingSessionID);            if (jmsClientId != null)      {         log.warn(this + " handling client " + remotingSessionID + "'s remoting connection failure ");                             //Remoting only provides one pinger per invoker, not per connection therefore when the pinger dies         //we must close ALL the connections corresponding to that jms client id         Map endpoints = (Map)jmsClients.get(jmsClientId);                  if (endpoints != null)         {            Iterator iter = endpoints.entrySet().iterator();                        while (iter.hasNext())            {               Map.Entry entry = (Map.Entry)iter.next();                              String sessionId = (String)entry.getKey();                              ConnectionEndpoint sce = (ConnectionEndpoint)entry.getValue();                              try               {                  sce.closing();                  sce.close();                  log.debug("cleared up state for connection " + sce);               }               catch (JMSException e)               {                  log.error("Failed to close connection", e);               }                              sessions.remove(sessionId);            }                        jmsClients.remove(jmsClientId);         }      }    }