/**
  * processDelayPayment
  *
  * @param udpMessage is an instance of DelayPaymentMessage
  * @throws Exception
  */
 private void processDelayPayment(UDPMessage udpMessage) throws Exception {
   if (udpMessage.getMessage() instanceof DelayPaymentMessage) {
     DelayPaymentMessage msg = (DelayPaymentMessage) udpMessage.getMessage();
     if (!this.bank.getServerName().equalsIgnoreCase(msg.getBank())) {
       msg.setException(new Exception("Wrong Bank Name! Request denied. processDelayPayment"));
     } else {
       boolean isDelayed = false;
       try {
         isDelayed =
             bank.delayPayment(msg.getLoanID(), msg.getCurrentDueDate(), msg.getNewDueDate());
       } catch (Exception e) {
         msg.setException(e);
       }
       msg.setDelaySuccessful(isDelayed);
       msg.setMachineName(Env.getMachineName());
     }
     this.send(udpMessage);
   } else {
     throw new Exception("Invalid Object processDelayPayment");
   }
 }