public void removeCnxn(ServerCnxn cnxn) { synchronized(cnxns){ // if this is not in cnxns then it's already closed if (!cnxns.remove(cnxn)) { if (LOG.isDebugEnabled()) { LOG.debug("cnxns size:" + cnxns.size()); } return; } if (LOG.isDebugEnabled()) { LOG.debug("close in progress for sessionid:0x" + Long.toHexString(cnxn.getSessionId())); } synchronized (ipMap) { Set<NettyServerCnxn> s = ipMap.get(cnxn.getSocketAddress()); s.remove(cnxn); } } }