org_apache_struts2_convention_PackageBasedActionConfigBuilderTest_java
org.apache.struts2.convention.ConventionUnknownHandler
protected Result findResult(String path, String resultCode, String ext, ActionContext actionContext, Map<String, ResultTypeConfig> resultsByExtension) {
        try {
            LOG.trace("Checking ServletContext for {}", (Object)path);
            URL resource = this.servletContext.getResource(path);
            if (resource != null && resource.getPath().endsWith(path)) {
                LOG.trace("Found resource {}", (Object)resource);
                return this.buildResult(path, resultCode, resultsByExtension.get(ext), actionContext);
            }
            LOG.trace("Checking ClassLoader for {}", (Object)path);
            String classLoaderPath = path.startsWith("/") ? path.substring(1, path.length()) : path;
            resource = ClassLoaderUtil.getResource(classLoaderPath, this.getClass());
            if (resource != null && resource.getPath().endsWith(classLoaderPath)) {
                LOG.trace("Found resource {}", (Object)resource);
                return this.buildResult(path, resultCode, resultsByExtension.get(ext), actionContext);
            }
        }
        catch (MalformedURLException e) {
            LOG.error("Unable to parse template path: {} skipping...", (Object)path);
        }
        return null;
    }
 -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.isVarArgs(): boolean -> java.util.concurrent.locks.ReentrantLock.lock(): void -> java.lang.ThreadLocal.get(): java.lang.Object -> java.util.List.add(java.lang.Object): boolean -> java.util.List.size(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.lang.reflect.Method.getReturnType(): java.lang.Class -> java.lang.Class.isPrimitive(): boolean -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.clear(): void -> java.lang.ThreadLocal.get(): java.lang.Object -> java.util.List.size(): int -> java.util.List.remove(int): java.lang.Object -> java.util.concurrent.locks.ReentrantLock.unlock(): 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.Object.getClass(): java.lang.Class
 [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean -> java.lang.reflect.Method.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.reflect.Method.isVarArgs(): boolean [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.concurrent.locks.ReentrantLock.lock(): void [CALL] [CALL] -> java.lang.ThreadLocal.get(): java.lang.Object -> java.util.List.add(java.lang.Object): boolean [EXIT] [CALL] -> java.util.List.size(): int [CALL] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] [EXIT] -> java.lang.reflect.Method.getReturnType(): java.lang.Class [CALL] -> java.lang.Class.isPrimitive(): boolean [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT] [CALL] -> java.util.Collection.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Collection.clear(): void [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.ThreadLocal.get(): java.lang.Object -> java.util.List.size(): int -> java.util.List.remove(int): java.lang.Object [EXIT] [EXIT] -> java.util.concurrent.locks.ReentrantLock.unlock(): void [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [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 -> java.lang.Object.getClass(): java.lang.Class [EXIT]