public class net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation extends java.lang.Object implements net.bytebuddy.dynamic.ClassFileLocator
{
private static final net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher DISPATCHER;
private final java.lang.instrument.Instrumentation instrumentation;
private final net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate;
private static final boolean ACCESS_CONTROLLER;
public void <init>(java.lang.instrument.Instrumentation, java.lang.ClassLoader)
{
java.lang.instrument.Instrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
java.lang.ClassLoader v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v := @parameter: java.lang.instrument.Instrumentation;
v := @parameter: java.lang.ClassLoader;
v = staticinvoke <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate$Default: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate of(java.lang.ClassLoader)>(v);
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: void <init>(java.lang.instrument.Instrumentation,net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate)>(v, v);
return;
}
private static java.lang.Object doPrivileged(java.security.PrivilegedAction)
{
java.lang.Object v, v;
java.security.PrivilegedAction v;
boolean v;
v := @parameter: java.security.PrivilegedAction;
v = <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: boolean ACCESS_CONTROLLER>;
if v == 0 goto label;
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
label:
v = interfaceinvoke v.<java.security.PrivilegedAction: java.lang.Object run()>();
return v;
}
public void <init>(java.lang.instrument.Instrumentation, net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate)
{
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher v;
java.lang.instrument.Instrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
java.lang.String v;
java.lang.IllegalArgumentException v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v;
boolean v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v := @parameter: java.lang.instrument.Instrumentation;
v := @parameter: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher DISPATCHER>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher: boolean isRetransformClassesSupported(java.lang.instrument.Instrumentation)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.instrument.Instrumentation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u does not support retransformation");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation> = v;
v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate> = v;
return;
}
private static java.lang.instrument.Instrumentation resolveByteBuddyAgentInstrumentation()
{
java.lang.IllegalStateException v;
java.lang.Object[] v, v;
net.bytebuddy.utility.JavaModule v, v;
java.lang.reflect.Method v, v;
boolean v;
java.lang.Class[] v, v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.lang.Class v, v;
java.lang.Object v, v, v;
java.lang.ClassLoader v;
label:
v = staticinvoke <java.lang.ClassLoader: java.lang.ClassLoader getSystemClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>("net.bytebuddy.agent.Installer");
v = staticinvoke <net.bytebuddy.utility.JavaModule: net.bytebuddy.utility.JavaModule ofType(java.lang.Class)>(class "Lnet/bytebuddy/agent/builder/AgentBuilder;");
v = staticinvoke <net.bytebuddy.utility.JavaModule: net.bytebuddy.utility.JavaModule ofType(java.lang.Class)>(v);
if v == null goto label;
v = virtualinvoke v.<net.bytebuddy.utility.JavaModule: boolean canRead(net.bytebuddy.utility.JavaModule)>(v);
if v != 0 goto label;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.lang.Module");
v = newarray (java.lang.Class)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("addReads", v);
v = virtualinvoke v.<net.bytebuddy.utility.JavaModule: java.lang.Object unwrap()>();
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<net.bytebuddy.utility.JavaModule: java.lang.Object unwrap()>();
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("getInstrumentation", v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>("The Byte Buddy agent is not installed or not accessible", v);
throw v;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static net.bytebuddy.dynamic.ClassFileLocator fromInstalledAgent(java.lang.ClassLoader)
{
java.lang.instrument.Instrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
java.lang.ClassLoader v;
v := @parameter: java.lang.ClassLoader;
v = new net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v = staticinvoke <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation resolveByteBuddyAgentInstrumentation()>();
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: void <init>(java.lang.instrument.Instrumentation,java.lang.ClassLoader)>(v, v);
return v;
}
public static net.bytebuddy.dynamic.ClassFileLocator of(java.lang.instrument.Instrumentation, java.lang.Class)
{
java.lang.instrument.Instrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
java.lang.Class v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v;
v := @parameter: java.lang.instrument.Instrumentation;
v := @parameter: java.lang.Class;
v = new net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v = staticinvoke <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate$Explicit: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate of(java.lang.Class)>(v);
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: void <init>(java.lang.instrument.Instrumentation,net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate)>(v, v);
return v;
}
public net.bytebuddy.dynamic.ClassFileLocator$Resolution locate(java.lang.String)
{
java.lang.Throwable v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher v, v;
byte[] v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ExtractionClassFileTransformer v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v, v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$Resolution v;
java.lang.String v;
net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit v;
java.lang.Class[] v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.lang.instrument.Instrumentation v, v, v, v;
net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal v, v;
java.lang.Class v;
java.lang.ClassLoader v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v := @parameter: java.lang.String;
label:
v = new net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ExtractionClassFileTransformer;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate: java.lang.ClassLoader getClassLoader()>();
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ExtractionClassFileTransformer: void <init>(java.lang.ClassLoader,java.lang.String)>(v, v);
v = <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher DISPATCHER>;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
interfaceinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher: void addTransformer(java.lang.instrument.Instrumentation,java.lang.instrument.ClassFileTransformer,boolean)>(v, v, 1);
label:
v = <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher DISPATCHER>;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
v = newarray (java.lang.Class)[1];
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate: java.lang.Class locate(java.lang.String)>(v);
v[0] = v;
interfaceinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher: void retransformClasses(java.lang.instrument.Instrumentation,java.lang.Class[])>(v, v);
v = virtualinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ExtractionClassFileTransformer: byte[] getBinaryRepresentation()>();
if v != null goto label;
v = new net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal;
v = v;
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal: void <init>(java.lang.String)>(v);
goto label;
label:
v = new net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit;
v = v;
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit: void <init>(byte[])>(v);
label:
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
interfaceinvoke v.<java.lang.instrument.Instrumentation: boolean removeTransformer(java.lang.instrument.ClassFileTransformer)>(v);
label:
return v;
label:
v := @caughtexception;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
interfaceinvoke v.<java.lang.instrument.Instrumentation: boolean removeTransformer(java.lang.instrument.ClassFileTransformer)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal;
specialinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal: void <init>(java.lang.String)>(v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void close()
{
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
return;
}
static void <clinit>()
{
java.lang.ClassNotFoundException v;
java.lang.Object v;
java.lang.SecurityException v;
java.lang.String v;
java.security.PrivilegedAction v;
boolean v;
goto label;
label:
v = staticinvoke <net.bytebuddy.utility.dispatcher.JavaDispatcher: java.security.PrivilegedAction of(java.lang.Class)>(class "Lnet/bytebuddy/dynamic/ClassFileLocator$ForInstrumentation$Dispatcher;");
v = staticinvoke <net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$Dispatcher DISPATCHER> = v;
return;
label:
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>("java.security.AccessController", 0, null);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("net.bytebuddy.securitymanager", "true");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: boolean ACCESS_CONTROLLER> = v;
label:
goto label;
label:
v := @caughtexception;
<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: boolean ACCESS_CONTROLLER> = 0;
goto label;
label:
v := @caughtexception;
<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: boolean ACCESS_CONTROLLER> = 1;
goto label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.SecurityException from label to label with label;
}
public boolean equals(java.lang.Object)
{
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v, v;
java.lang.instrument.Instrumentation v, v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
java.lang.Class v, v;
java.lang.Object v;
boolean v, v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
return 0;
label:
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate>;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
public int hashCode()
{
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate v;
java.lang.instrument.Instrumentation v;
net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation v;
int v, v, v, v, v, v, v;
java.lang.Class v;
v := @this: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation;
v = virtualinvoke v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: int hashCode()>();
v = v * 31;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: java.lang.instrument.Instrumentation instrumentation>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
v = v * 31;
v = v.<net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation: net.bytebuddy.dynamic.ClassFileLocator$ForInstrumentation$ClassLoadingDelegate classLoadingDelegate>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
return v;
}
}