com_baeldung_activitiwithspring_ActivitiControllerIntegrationTest_java
org.springframework.core.annotation.AbstractAliasAwareAnnotationAttributeExtractor
@Override
    @Nullable
    public final Object getAttributeValue(Method attributeMethod) {
        String attributeName = attributeMethod.getName();
        Object attributeValue = this.getRawAttributeValue(attributeMethod);
        List<String> aliasNames = this.attributeAliasMap.get(attributeName);
        if (aliasNames != null) {
            Object defaultValue = AnnotationUtils.getDefaultValue(this.annotationType, attributeName);
            for (String aliasName : aliasNames) {
                Object aliasValue = this.getRawAttributeValue(aliasName);
                if (!(ObjectUtils.nullSafeEquals(attributeValue, aliasValue) || ObjectUtils.nullSafeEquals(attributeValue, defaultValue) || ObjectUtils.nullSafeEquals(aliasValue, defaultValue))) {
                    String elementName = this.annotatedElement != null ? this.annotatedElement.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.", this.annotationType.getName(), elementName, this.source, attributeName, aliasName, ObjectUtils.nullSafeToString(attributeValue), ObjectUtils.nullSafeToString(aliasValue)));
                }
                if (!ObjectUtils.nullSafeEquals(attributeValue, defaultValue)) continue;
                attributeValue = aliasValue;
            }
        }
        return attributeValue;
    }
 -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.reflect.Method.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.invoke(java.lang.Object,java.lang.Object[]): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.isEmpty(): boolean -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean -> java.lang.Class.getDeclaredMethod(java.lang.String,java.lang.Class[]): java.lang.reflect.Method -> java.lang.reflect.Method.getDefaultValue(): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.Class.isInterface(): boolean -> java.lang.Class.getMethods(): java.lang.reflect.Method[] -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getParameterTypes(): java.lang.Class[] -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean -> java.lang.reflect.Method.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.invoke(java.lang.Object,java.lang.Object[]): java.lang.Object -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean -> java.util.Iterator.hasNext(): boolean
 [CALL] -> java.lang.reflect.Method.getName(): java.lang.String [CALL] [CALL] -> java.lang.reflect.Method.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.reflect.Method.invoke(java.lang.Object,java.lang.Object[]): java.lang.Object [EXIT] [EXIT] [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean [EXIT] [EXIT] -> java.lang.Class.getDeclaredMethod(java.lang.String,java.lang.Class[]): java.lang.reflect.Method -> java.lang.reflect.Method.getDefaultValue(): java.lang.Object [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Class.isInterface(): boolean -> java.lang.Class.getMethods(): java.lang.reflect.Method[] -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getName(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.reflect.Method.getParameterTypes(): java.lang.Class[] -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean [EXIT] [EXIT] [CALL] [CALL] -> java.lang.reflect.Method.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Method.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean [EXIT] [CALL] [EXIT] [CALL] [CALL] -> java.lang.reflect.Method.invoke(java.lang.Object,java.lang.Object[]): java.lang.Object [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean [CALL] -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean [EXIT] [EXIT] [CALL] -> java.lang.Object.equals(java.lang.Object): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean [CALL] -> java.util.Arrays.equals(java.lang.Object[],java.lang.Object[]): boolean [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT]