public class org.apache.logging.log4j.core.config.plugins.util.ResolverUtil extends java.lang.Object
{
private static final org.apache.logging.log4j.Logger LOGGER;
private static final java.lang.String VFSZIP;
private static final java.lang.String VFS;
private static final java.lang.String JAR;
private static final java.lang.String BUNDLE_RESOURCE;
private final java.util.Set classMatches;
private final java.util.Set resourceMatches;
private java.lang.ClassLoader classloader;
public void <init>()
{
java.util.HashSet v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set classMatches> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set resourceMatches> = v;
return;
}
public java.util.Set getClasses()
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.util.Set v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set classMatches>;
return v;
}
public java.util.Set getResources()
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.util.Set v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set resourceMatches>;
return v;
}
public java.lang.ClassLoader getClassLoader()
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.lang.ClassLoader v, v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader classloader>;
if v == null goto label;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader classloader>;
goto label;
label:
v = staticinvoke <org.apache.logging.log4j.core.util.Loader: java.lang.ClassLoader getClassLoader(java.lang.Class,java.lang.Class)>(class "Lorg/apache/logging/log4j/core/config/plugins/util/ResolverUtil;", null);
v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader classloader> = v;
label:
return v;
}
public void setClassLoader(java.lang.ClassLoader)
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.lang.ClassLoader v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: java.lang.ClassLoader;
v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader classloader> = v;
return;
}
public transient void find(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String[])
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
int v, v;
java.lang.String[] v;
java.lang.String v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String[];
if v != null goto label;
return;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void findInPackage(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
v = v + 1;
goto label;
label:
return;
}
public void findInPackage(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String)
{
java.util.Enumeration v;
java.net.URL v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
boolean v, v, v, v, v, v, v, v, v;
java.lang.Exception v;
org.apache.logging.log4j.Logger v, v, v;
java.lang.ClassLoader v;
java.lang.Throwable v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.util.jar.JarInputStream v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.IOException v;
java.io.File v, v, v;
java.lang.Object v;
java.io.InputStream v, v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader getClassLoader()>();
label:
v = virtualinvoke v.<java.lang.ClassLoader: java.util.Enumeration getResources(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Could not read package: {}", v, v);
return;
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.String extractPath(java.net.URL)>(v);
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Scanning for classes in \'{}\' matching criteria {}", v, v);
v = "vfszip";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - v;
v = v - 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = new java.net.URL;
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getHost()>();
specialinvoke v.<java.net.URL: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = new java.util.jar.JarInputStream;
v = virtualinvoke v.<java.net.URL: java.io.InputStream openStream()>();
specialinvoke v.<java.util.jar.JarInputStream: void <init>(java.io.InputStream)>(v);
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.lang.String,java.util.jar.JarInputStream)>(v, v, v, v);
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void close(java.util.jar.JarInputStream,java.lang.Object)>(v, v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void close(java.util.jar.JarInputStream,java.lang.Object)>(v, v);
throw v;
label:
v = "vfs";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - v;
v = v - 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(1, v);
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInDirectory(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.io.File)>(v, v, v);
goto label;
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.io.File)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - v;
v = v - 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = new java.net.URL;
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getHost()>();
specialinvoke v.<java.net.URL: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = virtualinvoke v.<java.net.URL: java.io.InputStream openStream()>();
label:
v = v instanceof java.util.jar.JarInputStream;
if v != 0 goto label;
v = new java.util.jar.JarInputStream;
specialinvoke v.<java.util.jar.JarInputStream: void <init>(java.io.InputStream)>(v);
v = v;
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.lang.String,java.util.jar.JarInputStream)>(v, v, v, v);
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = "bundleresource";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInBundle(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
goto label;
label:
v = "jar";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.net.URL)>(v, v, v);
goto label;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInDirectory(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.io.File)>(v, v, v);
goto label;
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.io.File)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Could not read entries", v);
goto label;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.net.URISyntaxException from label to label with label;
}
java.lang.String extractPath(java.net.URL) throws java.io.UnsupportedEncodingException, java.net.URISyntaxException
{
java.net.URL v;
java.lang.String[] v;
java.nio.charset.Charset v;
int v;
java.lang.String v, v, v, v, v;
java.net.URI v;
boolean v, v, v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.File v;
java.util.List v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: java.net.URL;
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("jar:");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(4);
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("file:");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(5);
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(33);
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = newarray (java.lang.String)[3];
v[0] = "vfs";
v[1] = "vfszip";
v[2] = "bundleresource";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
return v;
label:
v = new java.net.URI;
specialinvoke v.<java.net.URI: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URI: java.lang.String getPath()>();
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
return v;
label:
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
v = staticinvoke <java.net.URLDecoder: java.lang.String decode(java.lang.String,java.lang.String)>(v, v);
return v;
}
private void loadImplementationsInBundle(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String)
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.util.Iterator v;
java.util.Collection v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
java.lang.Object v, v;
java.lang.String v;
org.osgi.framework.Bundle v;
boolean v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v = staticinvoke <org.osgi.framework.FrameworkUtil: org.osgi.framework.Bundle getBundle(java.lang.Class)>(class "Lorg/apache/logging/log4j/core/config/plugins/util/ResolverUtil;");
v = interfaceinvoke v.<org.osgi.framework.Bundle: java.lang.Object adapt(java.lang.Class)>(class "Lorg/osgi/framework/wiring/BundleWiring;");
v = interfaceinvoke v.<org.osgi.framework.wiring.BundleWiring: java.util.Collection listResources(java.lang.String,java.lang.String,int)>(v, "*.class", 1);
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void addIfMatching(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
goto label;
label:
return;
}
private void loadImplementationsInDirectory(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String, java.io.File)
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
int v, v;
java.lang.String v, v, v, v;
boolean v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.File v, v;
java.lang.StringBuilder v, v, v;
java.io.File[] v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: java.io.File[] listFiles()>();
if v != null goto label;
return;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(47);
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
if v != null goto label;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
label:
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInDirectory(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.io.File)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: boolean isTestApplicable(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void addIfMatching(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
label:
v = v + 1;
goto label;
label:
return;
}
private boolean isTestApplicable(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String)
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.lang.String v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
boolean v, v, v, v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean doesMatchResource()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".class");
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean doesMatchClass()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String, java.net.URL)
{
java.lang.Throwable v;
java.util.Enumeration v;
java.net.URL v;
java.util.jar.JarFile v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
java.net.URLConnection v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.IOException v;
org.apache.logging.log4j.Logger v, v;
java.lang.Object v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v := @parameter: java.net.URL;
label:
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
if v == null goto label;
virtualinvoke v.<java.net.JarURLConnection: void setUseCaches(boolean)>(0);
v = virtualinvoke v.<java.net.JarURLConnection: java.util.jar.JarFile getJarFile()>();
label:
v = virtualinvoke v.<java.util.jar.JarFile: java.util.Enumeration entries()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = virtualinvoke v.<java.util.jar.JarEntry: boolean isDirectory()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: boolean isTestApplicable(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void addIfMatching(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
goto label;
label:
virtualinvoke v.<java.util.jar.JarFile: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("Could not establish connection to {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object)>("Could not search JAR file \'{}\' for classes matching criteria {}, file not found", v, v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
private void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String, java.io.File)
{
java.lang.Throwable v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.IOException v;
java.io.FileInputStream v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
java.io.File v;
org.apache.logging.log4j.Logger v;
java.util.jar.JarInputStream v, v;
java.lang.String v, v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = null;
label:
v = new java.util.jar.JarInputStream;
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.io.File)>(v);
specialinvoke v.<java.util.jar.JarInputStream: void <init>(java.io.InputStream)>(v);
v = v;
v = virtualinvoke v.<java.io.File: java.lang.String getPath()>();
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String,java.lang.String,java.util.jar.JarInputStream)>(v, v, v, v);
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void close(java.util.jar.JarInputStream,java.lang.Object)>(v, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object)>("Could not search JAR file \'{}\' for classes matching criteria {}, file not found", v, v, v);
label:
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void close(java.util.jar.JarInputStream,java.lang.Object)>(v, v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void close(java.util.jar.JarInputStream,java.lang.Object)>(v, v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void close(java.util.jar.JarInputStream, java.lang.Object)
{
java.util.jar.JarInputStream v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.lang.Object v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: java.util.jar.JarInputStream;
v := @parameter: java.lang.Object;
return;
}
private void loadImplementationsInJar(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String, java.lang.String, java.util.jar.JarInputStream)
{
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.io.IOException v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
java.util.jar.JarEntry v;
org.apache.logging.log4j.Logger v;
java.util.jar.JarInputStream v;
java.lang.String v, v, v;
boolean v, v, v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.jar.JarInputStream;
label:
v = virtualinvoke v.<java.util.jar.JarInputStream: java.util.jar.JarEntry getNextJarEntry()>();
if v == null goto label;
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = virtualinvoke v.<java.util.jar.JarEntry: boolean isDirectory()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: boolean isTestApplicable(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: void addIfMatching(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test,java.lang.String)>(v, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object)>("Could not search JAR file \'{}\' for classes matching criteria {} due to an IOException", v, v, v);
label:
return;
catch java.io.IOException from label to label with label;
}
protected void addIfMatching(org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test, java.lang.String)
{
java.lang.Throwable v;
java.net.URL v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test v;
int v;
java.lang.String v, v, v, v;
java.net.URI v, v;
boolean v, v, v, v;
org.apache.logging.log4j.core.config.plugins.util.ResolverUtil v;
java.util.Set v, v;
org.apache.logging.log4j.Logger v, v;
java.lang.Class v;
java.lang.ClassLoader v;
v := @this: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
v := @parameter: org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test;
v := @parameter: java.lang.String;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.lang.ClassLoader getClassLoader()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean doesMatchClass()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(46);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(47, 46);
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Checking to see if class {} matches criteria {}", v, v);
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean matches(java.lang.Class)>(v);
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set classMatches>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean doesMatchResource()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
if v != null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<java.net.URL: java.net.URI toURI()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil$Test: boolean matches(java.net.URI)>(v);
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: java.util.Set resourceMatches>;
v = virtualinvoke v.<java.net.URL: java.net.URI toURI()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Could not examine class {}", v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
org.apache.logging.log4j.status.StatusLogger v;
v = staticinvoke <org.apache.logging.log4j.status.StatusLogger: org.apache.logging.log4j.status.StatusLogger getLogger()>();
<org.apache.logging.log4j.core.config.plugins.util.ResolverUtil: org.apache.logging.log4j.Logger LOGGER> = v;
return;
}
}