com_baeldung_actuator_LoginServiceUnitTest_java
org.springframework.core.annotation.SynthesizedAnnotationInvocationHandler
private Object getAttributeValue(Method attributeMethod) {
        String attributeName = attributeMethod.getName();
        Object value = this.valueCache.get(attributeName);
        if (value == null) {
            value = this.attributeExtractor.getAttributeValue(attributeMethod);
            if (value == null) {
                String msg = String.format("%s returned null for attribute name [%s] from attribute source [%s]", this.attributeExtractor.getClass().getName(), attributeName, this.attributeExtractor.getSource());
                throw new IllegalStateException(msg);
            }
            if (value instanceof Annotation) {
                value = AnnotationUtils.synthesizeAnnotation((Annotation)((Annotation)value), (Object)this.attributeExtractor.getAnnotatedElement());
            } else if (value instanceof Annotation[]) {
                value = AnnotationUtils.synthesizeAnnotationArray((Annotation[])value, (Object)this.attributeExtractor.getAnnotatedElement());
            }
            this.valueCache.put(attributeName, value);
        }
        if (value.getClass().isArray()) {
            value = this.cloneArray(value);
        }
        return value;
    }
 -> java.lang.reflect.Method.getName(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> 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.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 -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean -> java.lang.Object[].clone(): java.lang.Object
 [CALL] -> java.lang.reflect.Method.getName(): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object [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.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] -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.lang.Object.getClass(): java.lang.Class -> java.lang.Class.isArray(): boolean [CALL] -> java.lang.Object[].clone(): java.lang.Object [EXIT] [EXIT]