org_apache_struts2_StrutsSpringJUnit4TestCaseTest_java
org.apache.struts2.convention.DefaultResultMapBuilder
protected void createFromResources(Class<?> actionClass, Map<String, ResultConfig> results, String resultPath, String resultPrefix, String actionName, PackageConfig packageConfig, Map<String, ResultTypeConfig> resultsByExtension) {
        String classPathLocation;
        Set paths;
        if (LOG.isTraceEnabled()) {
            LOG.trace("Searching for results in the Servlet container at [{}] with result prefix of [#1]", (Object)resultPath, (Object)resultPrefix);
        }
        if ((paths = this.servletContext.getResourcePaths(this.flatResultLayout ? resultPath : resultPrefix)) != null) {
            for (String path : paths) {
                LOG.trace("Processing resource path [{}]", (Object)path);
                String fileName = StringUtils.substringAfterLast(path, "/");
                if (StringUtils.isBlank(fileName) || StringUtils.startsWith(fileName, ".")) {
                    LOG.trace("Ignoring file without name [{}]", (Object)path);
                    continue;
                }
                if (fileName.lastIndexOf(".") > 0) {
                    String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
                    if (this.conventionsService.getResultTypesByExtension(packageConfig).get(suffix) == null) {
                        LOG.debug("No result type defined for file suffix : [{}]. Ignoring file {}", (Object)suffix, (Object)fileName);
                        continue;
                    }
                }
                this.makeResults(actionClass, path, resultPrefix, results, packageConfig, resultsByExtension);
            }
        }
        String string = classPathLocation = resultPath.startsWith("/") ? resultPath.substring(1, resultPath.length()) : resultPath;
        if (LOG.isTraceEnabled()) {
            LOG.trace("Searching for results in the class path at [{}] with a result prefix of [{}] and action name [{}]", (Object)classPathLocation, (Object)resultPrefix, (Object)actionName);
        }
        ResourceFinder finder = new ResourceFinder(classPathLocation, this.getClassLoaderInterface());
        try {
            Map<String, URL> matches = finder.getResourcesMap("");
            if (matches != null) {
                Test<URL> resourceTest = this.getResourceTest(resultPath, actionName);
                for (Map.Entry<String, URL> entry : matches.entrySet()) {
                    if (!resourceTest.test(entry.getValue())) continue;
                    LOG.trace("Processing URL [{}]", (Object)entry.getKey());
                    String urlStr = entry.getValue().toString();
                    int index = urlStr.lastIndexOf(resultPrefix);
                    String path = urlStr.substring(index);
                    this.makeResults(actionClass, path, resultPrefix, results, packageConfig, resultsByExtension);
                }
            }
        }
        catch (IOException ex) {
            LOG.error("Unable to scan directory [{}] for results", (Object)ex, (Object)classPathLocation);
        }
    }
 -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> 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.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.isEmpty(): boolean -> java.lang.String.isEmpty(): boolean -> java.lang.String.indexOf(java.lang.String): int -> java.lang.String.indexOf(int): int -> java.lang.String.startsWith(java.lang.String): boolean -> 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.lang.String.substring(int): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.isEmpty(): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.lang.String.isEmpty(): boolean -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.String.substring(int): java.lang.String -> java.lang.String.isEmpty(): boolean -> java.util.List.add(java.lang.Object): boolean -> java.util.Collection.size(): int -> java.util.Collection.toArray(java.lang.Object[]): java.lang.Object[] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Collection.isEmpty(): boolean -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.substring(int): java.lang.String -> java.lang.ClassLoader.getResource(java.lang.String): java.net.URL -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> 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.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.valueOf(java.lang.Object): java.lang.String -> java.util.logging.Logger.isLoggable(java.util.logging.Level): boolean -> java.lang.Throwable.getStackTrace(): java.lang.StackTraceElement[] -> java.lang.StackTraceElement.getMethodName(): java.lang.String -> java.util.logging.Logger.logp(java.util.logging.Level,java.lang.String,java.lang.String,java.lang.String,java.lang.Throwable): void -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String -> 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.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.lang.ThreadLocal.get(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.Thread.getContextClassLoader(): java.lang.ClassLoader -> java.lang.String.trim(): java.lang.String -> java.lang.String.isEmpty(): boolean -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.String.regionMatches(boolean,int,java.lang.String,int,int): boolean -> 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.lang.String.endsWith(java.lang.String): boolean -> java.util.Enumeration.hasMoreElements(): boolean -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean
 [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> 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 [EXIT] [CALL] [CALL] [EXIT] -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.String.startsWith(java.lang.String): boolean [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] -> java.lang.String.indexOf(java.lang.String): int [EXIT] -> java.lang.String.indexOf(int): int -> java.lang.String.startsWith(java.lang.String): boolean -> 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.lang.String.substring(int): java.lang.String [CALL] [CALL] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.substring(int,int): java.lang.String [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.substring(int,int): java.lang.String [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.String.length(): int -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.String.substring(int): java.lang.String [CALL] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] -> java.util.Collection.size(): int -> java.util.Collection.toArray(java.lang.Object[]): java.lang.Object[] [EXIT] [EXIT] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.util.List.add(int,java.lang.Object): void -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [CALL] [CALL] -> java.util.Collection.isEmpty(): boolean [EXIT] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.next(): java.lang.Object -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.substring(int): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.ClassLoader.getResource(java.lang.String): java.net.URL [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> 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 [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.Object): java.lang.StringBuilder [CALL] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(char): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.valueOf(java.lang.Object): java.lang.String [CALL] [CALL] [EXIT] -> java.util.logging.Logger.isLoggable(java.util.logging.Level): boolean -> java.lang.Throwable.getStackTrace(): java.lang.StackTraceElement[] -> java.lang.StackTraceElement.getMethodName(): java.lang.String -> java.util.logging.Logger.logp(java.util.logging.Level,java.lang.String,java.lang.String,java.lang.String,java.lang.Throwable): void [EXIT] [EXIT] [EXIT] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.length(): int -> java.lang.String.substring(int,int): java.lang.String [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [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.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] -> java.lang.ThreadLocal.get(): java.lang.Object [EXIT] [CALL] -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] -> java.util.Map.containsKey(java.lang.Object): boolean -> java.util.Map.get(java.lang.Object): java.lang.Object [EXIT] [EXIT] -> java.lang.Thread.getContextClassLoader(): java.lang.ClassLoader [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] -> java.lang.String.trim(): java.lang.String [EXIT] -> java.lang.String.isEmpty(): boolean [CALL] [CALL] -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int -> java.lang.CharSequence.length(): int [CALL] -> java.lang.String.regionMatches(boolean,int,java.lang.String,int,int): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> 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.lang.String.endsWith(java.lang.String): boolean [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.Enumeration.hasMoreElements(): boolean [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT]