/**
  * processTransferLoan
  *
  * @param udpMessage is an instance of TransferLoanMessage
  * @throws Exception
  */
 private void processTransferLoan(UDPMessage udpMessage) throws Exception {
   if (udpMessage.getMessage() instanceof TransferLoanMessage) {
     TransferLoanMessage msg = (TransferLoanMessage) udpMessage.getMessage();
     if (!this.bank.getServerName().equalsIgnoreCase(msg.getCurrentBank())) {
       msg.setException(new Exception("Wrong Bank Name! Request denied. processTransferLoan"));
     } else {
       boolean isTransferred = false;
       try {
         isTransferred = bank.transferLoan(msg.getLoanID(), msg.getOtherBank());
       } catch (Exception e) {
         msg.setException(e);
       }
       msg.setTransferSuccessful(isTransferred);
       msg.setMachineName(Env.getMachineName());
     }
     this.send(udpMessage);
   } else {
     throw new Exception("Invalid Object processTransferLoan");
   }
 }