org_apache_struts2_StrutsSpringJUnit4TestCaseTest_java
org.springframework.beans.factory.support.SimpleInstantiationStrategy
@Override
    public Object instantiate(RootBeanDefinition bd, String beanName, BeanFactory owner, Object factoryBean, Method factoryMethod, Object ... args) {
        if (System.getSecurityManager() != null) {
            AccessController.doPrivileged(new /* Unavailable Anonymous Inner Class!! */);
        } else {
            ReflectionUtils.makeAccessible(factoryMethod);
        }
        Method priorInvokedFactoryMethod = currentlyInvokedFactoryMethod.get();
        try {
            currentlyInvokedFactoryMethod.set(factoryMethod);
            Object object = factoryMethod.invoke(factoryBean, args);
            if (priorInvokedFactoryMethod != null) {
                currentlyInvokedFactoryMethod.set(priorInvokedFactoryMethod);
            } else {
                currentlyInvokedFactoryMethod.remove();
            }
            return object;
        }
        catch (Throwable throwable) {
            try {
                if (priorInvokedFactoryMethod != null) {
                    currentlyInvokedFactoryMethod.set(priorInvokedFactoryMethod);
                } else {
                    currentlyInvokedFactoryMethod.remove();
                }
                throw throwable;
            }
            catch (IllegalArgumentException ex) {
                throw new BeanInstantiationException(factoryMethod, "Illegal arguments to factory method '" + factoryMethod.getName() + "'; args: " + StringUtils.arrayToCommaDelimitedString(args), (Throwable)ex);
            }
            catch (IllegalAccessException ex) {
                throw new BeanInstantiationException(factoryMethod, "Cannot access factory method '" + factoryMethod.getName() + "'; is it public?", (Throwable)ex);
            }
            catch (InvocationTargetException ex) {
                String msg = "Factory method '" + factoryMethod.getName() + "' threw exception";
                if (bd.getFactoryBeanName() != null && owner instanceof ConfigurableBeanFactory && ((ConfigurableBeanFactory)owner).isCurrentlyInCreation(bd.getFactoryBeanName())) {
                    msg = "Circular reference involving containing bean '" + bd.getFactoryBeanName() + "' - consider declaring the factory method as static for independence from its containing instance. " + msg;
                }
                throw new BeanInstantiationException(factoryMethod, msg, ex.getTargetException());
            }
        }
    }
 -> java.util.Set.isEmpty(): boolean -> java.lang.System.getSecurityManager(): java.lang.SecurityManager -> java.lang.reflect.Constructor.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Constructor.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Constructor.newInstance(java.lang.Object[]): java.lang.Object -> java.lang.Class.getClassLoader(): java.lang.ClassLoader -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.Class.newInstance(): java.lang.Object -> java.lang.Class.newInstance(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.System.getProperties(): java.util.Properties -> java.util.Properties.containsKey(java.lang.Object): boolean -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.regex.Pattern.matcher(java.lang.CharSequence): java.util.regex.Matcher -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.String.lastIndexOf(java.lang.String): int -> java.lang.String.length(): int -> java.lang.String.substring(int): java.lang.String -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.concurrent.ConcurrentMap.putIfAbsent(java.lang.Object,java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.regex.Pattern.compile(java.lang.String,int): java.util.regex.Pattern
 [CALL] [CALL] [EXIT] [CALL] -> java.util.Set.isEmpty(): boolean [EXIT] -> java.lang.System.getSecurityManager(): java.lang.SecurityManager [CALL] [CALL] [EXIT] [CALL] -> java.lang.reflect.Constructor.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean -> java.lang.reflect.Constructor.getDeclaringClass(): java.lang.Class -> java.lang.Class.getModifiers(): int -> java.lang.reflect.Modifier.isPublic(int): boolean [EXIT] -> java.lang.reflect.Constructor.newInstance(java.lang.Object[]): java.lang.Object [CALL] [CALL] [EXIT] -> java.lang.Class.getClassLoader(): java.lang.ClassLoader [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [CALL] [CALL] [CALL] -> java.lang.Class.newInstance(): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] -> java.lang.Class.newInstance(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [CALL] -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.Map.containsKey(java.lang.Object): boolean [CALL] -> java.lang.System.getProperties(): java.util.Properties -> java.util.Properties.containsKey(java.lang.Object): boolean [EXIT] -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean [CALL] -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.regex.Pattern.matcher(java.lang.CharSequence): java.util.regex.Matcher -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.regex.Matcher.group(int): java.lang.String -> java.lang.String.toLowerCase(): java.lang.String -> java.util.List.add(java.lang.Object): boolean -> java.util.regex.Matcher.find(): boolean -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.String.lastIndexOf(java.lang.String): int -> java.lang.String.length(): int -> java.lang.String.substring(int): java.lang.String [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [CALL] -> java.util.concurrent.ConcurrentMap.putIfAbsent(java.lang.Object,java.lang.Object): java.lang.Object [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.regex.Pattern.compile(java.lang.String,int): java.util.regex.Pattern [EXIT] [EXIT] [EXIT]