MessageSource.getMessage returns null default message as-is (again)

Issue: SPR-16127
This commit is contained in:
Juergen Hoeller
2017-10-31 11:06:42 +01:00
parent 295e3b6a99
commit e5c8dc0d65
8 changed files with 29 additions and 13 deletions

View File

@@ -53,6 +53,7 @@ public interface MessageSource {
* otherwise the default message passed as a parameter
* @see java.text.MessageFormat
*/
@Nullable
String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale);
/**

View File

@@ -143,8 +143,7 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme
return msg;
}
if (defaultMessage == null) {
String fallback = getDefaultMessage(code);
return (fallback != null ? fallback : "");
return getDefaultMessage(code);
}
return renderDefaultMessage(defaultMessage, args, locale);
}
@@ -264,8 +263,7 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme
else {
// Check parent MessageSource, returning null if not found there.
// Covers custom MessageSource impls and DelegatingMessageSource.
String msg = parent.getMessage(code, args, null, locale);
return ("".equals(msg) ? null : msg);
return parent.getMessage(code, args, null, locale);
}
}
// Not found in parent either.

View File

@@ -54,6 +54,7 @@ public class DelegatingMessageSource extends MessageSourceSupport implements Hie
@Override
@Nullable
public String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale) {
if (this.parentMessageSource != null) {
return this.parentMessageSource.getMessage(code, args, defaultMessage, locale);
@@ -62,7 +63,7 @@ public class DelegatingMessageSource extends MessageSourceSupport implements Hie
return renderDefaultMessage(defaultMessage, args, locale);
}
else {
return "";
return null;
}
}

View File

@@ -84,7 +84,8 @@ public class MessageSourceAccessor {
* @return the message
*/
public String getMessage(String code, String defaultMessage) {
return this.messageSource.getMessage(code, null, defaultMessage, getDefaultLocale());
String msg = this.messageSource.getMessage(code, null, defaultMessage, getDefaultLocale());
return (msg != null ? msg : "");
}
/**
@@ -95,7 +96,8 @@ public class MessageSourceAccessor {
* @return the message
*/
public String getMessage(String code, String defaultMessage, Locale locale) {
return this.messageSource.getMessage(code, null, defaultMessage, locale);
String msg = this.messageSource.getMessage(code, null, defaultMessage, locale);
return (msg != null ? msg : "");
}
/**
@@ -106,7 +108,8 @@ public class MessageSourceAccessor {
* @return the message
*/
public String getMessage(String code, @Nullable Object[] args, String defaultMessage) {
return this.messageSource.getMessage(code, args, defaultMessage, getDefaultLocale());
String msg = this.messageSource.getMessage(code, args, defaultMessage, getDefaultLocale());
return (msg != null ? msg : "");
}
/**
@@ -118,7 +121,8 @@ public class MessageSourceAccessor {
* @return the message
*/
public String getMessage(String code, @Nullable Object[] args, String defaultMessage, Locale locale) {
return this.messageSource.getMessage(code, args, defaultMessage, locale);
String msg = this.messageSource.getMessage(code, args, defaultMessage, locale);
return (msg != null ? msg : "");
}
/**