public void destroy() { try { server_mon.enter(); Iterator it = rendezvous_bindings.values().iterator(); while (it.hasNext()) { Object[] entry = (Object[]) it.next(); final DHTTransportUDPContact contact = (DHTTransportUDPContact) entry[0]; new AEThread2("DHTNATPuncher:destroy", true) { public void run() { sendClose(contact); } }.start(); } } catch (Throwable e) { log(e); } finally { server_mon.exit(); } }