public void destroy(boolean timeout) { try { GravityInternal gravity = getGravity(); gravity.cancel(publisher); gravity.cancel(receiver); subscriptions.clear(); } finally { if (udpReceiver != null) { if (!udpReceiver.isClosed()) udpReceiver.close(timeout); udpReceiver = null; } } }