protected String getMessage(String key, String defaultMessage, Locale locale) {
        try {
            return messageSource.getMessage(key, new Object[] {}, defaultMessage, locale);
        } catch (Exception e) {
            // sadly, messageSource.getMessage can throw e.g. when message is ill formatted.
            logger.error("Error resolving message with key {}.", key, e);
            return defaultMessage;
        }
    }
protected String getMessage ( String key , String defaultMessage , Locale locale ) { try { return messageSource . getMessage ( key , new Object [ ] { } , defaultMessage , locale ) ; } catch ( Exception e ) { logger . error ( "Error resolving message with key {}." , key , e ) ; return defaultMessage ; } }
Syntactic sugar for safely resolving a no-args message from message bundle.

@param key Message bundle key
@param defaultMessage Ready-to-present message to fall back upon.
@param locale desired locale
@return Resolved interpolated message or defaultMessage.