public void close() throws ChannelException {
   logger.trace("close() - entry");
   try {
     MulticastSocket socket = (MulticastSocket) getSocket();
     if (socket != null) {
       socket.leaveGroup(getGroup());
     }
     super.close();
   } catch (IOException ex) {
     logger.error("close() - Error closing sockets", ex);
   }
   logger.trace("close() - exit");
 }