private BaseMsg processMessageHandle(BaseReqMsg msg) {
   if (isEmpty(messageHandles)) {
     synchronized (LOCK) {
       messageHandles = this.initMessageHandles();
     }
   }
   if (isNotEmpty(messageHandles)) {
     for (MessageHandle messageHandle : messageHandles) {
       BaseMsg resultMsg = null;
       boolean result;
       try {
         result = messageHandle.beforeHandle(msg);
       } catch (Exception e) {
         result = false;
       }
       if (result) {
         resultMsg = messageHandle.handle(msg);
       }
       if (nonNull(resultMsg)) {
         return resultMsg;
       }
     }
   }
   return null;
 }