diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor.java b/spring-core/src/main/java/org/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor.java index 2b79039df5..76fc8b6bd3 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AbstractAliasAwareAnnotationAttributeExtractor.java @@ -91,25 +91,23 @@ abstract class AbstractAliasAwareAnnotationAttributeExtractor implements Anno if (aliasNames != null) { final Object defaultValue = AnnotationUtils.getDefaultValue(getAnnotationType(), attributeName); for (String aliasName : aliasNames) { - if (aliasName != null) { - Object aliasValue = getRawAttributeValue(aliasName); - - if (!ObjectUtils.nullSafeEquals(attributeValue, aliasValue) && - !ObjectUtils.nullSafeEquals(attributeValue, defaultValue) && - !ObjectUtils.nullSafeEquals(aliasValue, defaultValue)) { - String elementName = (getAnnotatedElement() != null ? getAnnotatedElement().toString() : "unknown element"); - throw new AnnotationConfigurationException(String.format( - "In annotation [%s] declared on %s and synthesized from [%s], attribute '%s' and its " + - "alias '%s' are present with values of [%s] and [%s], but only one is permitted.", - getAnnotationType().getName(), elementName, getSource(), attributeName, aliasName, - ObjectUtils.nullSafeToString(attributeValue), ObjectUtils.nullSafeToString(aliasValue))); - } - - // If the user didn't declare the annotation with an explicit value, - // use the value of the alias instead. - if (ObjectUtils.nullSafeEquals(attributeValue, defaultValue)) { - attributeValue = aliasValue; - } + Object aliasValue = getRawAttributeValue(aliasName); + + if (!ObjectUtils.nullSafeEquals(attributeValue, aliasValue) && + !ObjectUtils.nullSafeEquals(attributeValue, defaultValue) && + !ObjectUtils.nullSafeEquals(aliasValue, defaultValue)) { + String elementName = (getAnnotatedElement() != null ? getAnnotatedElement().toString() : "unknown element"); + throw new AnnotationConfigurationException(String.format( + "In annotation [%s] declared on %s and synthesized from [%s], attribute '%s' and its " + + "alias '%s' are present with values of [%s] and [%s], but only one is permitted.", + getAnnotationType().getName(), elementName, getSource(), attributeName, aliasName, + ObjectUtils.nullSafeToString(attributeValue), ObjectUtils.nullSafeToString(aliasValue))); + } + + // If the user didn't declare the annotation with an explicit value, + // use the value of the alias instead. + if (ObjectUtils.nullSafeEquals(attributeValue, defaultValue)) { + attributeValue = aliasValue; } } } diff --git a/spring-core/src/main/java/org/springframework/core/annotation/MapAnnotationAttributeExtractor.java b/spring-core/src/main/java/org/springframework/core/annotation/MapAnnotationAttributeExtractor.java index ddf9976ac6..aeb2407f5a 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/MapAnnotationAttributeExtractor.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/MapAnnotationAttributeExtractor.java @@ -99,13 +99,11 @@ class MapAnnotationAttributeExtractor extends AbstractAliasAwareAnnotationAttrib List aliasNames = attributeAliasMap.get(attributeName); if (aliasNames != null) { for (String aliasName : aliasNames) { - if (aliasName != null) { - Object aliasValue = attributes.get(aliasName); - if (aliasValue != null) { - attributeValue = aliasValue; - attributes.put(attributeName, attributeValue); - break; - } + Object aliasValue = attributes.get(aliasName); + if (aliasValue != null) { + attributeValue = aliasValue; + attributes.put(attributeName, attributeValue); + break; } } }