public void connectionClosed(ConnectionEvent e) { GnutellaConnection conn = ((GnutellaConnectionEvent) e).getConnection(); // remove all listeners as well // as remove from active and established connection lists conn.removeConnectionListener(this); synchronized (activeConnections) { activeConnections.remove(conn); } synchronized (establishedConnections) { establishedConnections.remove(conn); } fireConnectionClosed(e); GnutellaConnectionModel model = (GnutellaConnectionModel) e.getConnectionModel(); switch (model.getConnectionType()) { case GnutellaConnectionModel.INCOMING: currentIncomingConnections--; break; case GnutellaConnectionModel.OUTGOING: currentOutgoingConnections--; break; } conn.removeMessageListener(listMsgListener); ipList.remove(e.getConnectionModel().getHostAddress()); }