@Override
 protected MessageAttributes forwardByProtocol(Object destination, AttributedMessage message)
     throws NameLookupException, UnregisteredNameException, CommFailureException,
         MisdeliveredMessageException {
   try {
     return sender.handleOutgoingMessage(uri, message);
   } catch (CommFailureException e1) {
     decache();
     throw e1;
   } catch (MisdeliveredMessageException e2) {
     decache();
     throw e2;
   } catch (Exception e3) {
     decache();
     throw new CommFailureException(e3);
   }
 }