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; }