org_apache_struts2_rest_handler_JacksonJsonHandlerTest_java
com.fasterxml.jackson.databind.deser.BeanDeserializerFactory
@Override
    public JsonDeserializer<Object> createBeanDeserializer(DeserializationContext ctxt, JavaType type, BeanDescription beanDesc) throws JsonMappingException {
        JavaType concreteType;
        DeserializationConfig config = ctxt.getConfig();
        JsonDeserializer<Object> deser = this._findCustomBeanDeserializer(type, config, beanDesc);
        if (deser != null) {
            if (this._factoryConfig.hasDeserializerModifiers()) {
                for (BeanDeserializerModifier mod : this._factoryConfig.deserializerModifiers()) {
                    deser = mod.modifyDeserializer(ctxt.getConfig(), beanDesc, deser);
                }
            }
            return deser;
        }
        if (type.isThrowable()) {
            return this.buildThrowableDeserializer(ctxt, type, beanDesc);
        }
        if (type.isAbstract() && !type.isPrimitive() && !type.isEnumType() && (concreteType = this.materializeAbstractType(ctxt, type, beanDesc)) != null) {
            beanDesc = config.introspect(concreteType);
            return this.buildBeanDeserializer(ctxt, concreteType, beanDesc);
        }
        deser = this.findStdDeserializer(ctxt, type, beanDesc);
        if (deser != null) {
            return deser;
        }
        if (!this.isPotentialBeanType(type.getRawClass())) {
            return null;
        }
        this._validateSubType(ctxt, type, beanDesc);
        return this.buildBeanDeserializer(ctxt, type, beanDesc);
    }
 -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.Class.isAssignableFrom(java.lang.Class): boolean -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isAbstract(int): boolean -> java.lang.Class.isPrimitive(): boolean -> java.lang.Class.isEnum(): boolean -> java.lang.Iterable.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.Class.getName(): java.lang.String -> java.lang.Class.isPrimitive(): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.Class.isPrimitive(): boolean -> java.util.HashSet.contains(java.lang.Object): boolean
 [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Iterable.iterator(): java.util.Iterator [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT] [CALL] -> java.lang.Class.isAssignableFrom(java.lang.Class): boolean [EXIT] [CALL] -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isAbstract(int): boolean [EXIT] [CALL] -> java.lang.Class.isPrimitive(): boolean [EXIT] [CALL] -> java.lang.Class.isEnum(): boolean [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.Iterable.iterator(): java.util.Iterator [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.lang.Class.getName(): java.lang.String -> java.lang.Class.isPrimitive(): boolean -> java.lang.String.startsWith(java.lang.String): boolean [CALL] -> java.lang.Class.isPrimitive(): boolean -> java.util.HashSet.contains(java.lang.Object): boolean [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT]