public class sun.instrument.InstrumentationImpl implements java.lang.instrument.Instrumentation
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.instrument.InstrumentationImpl
super_class: java.lang.Object
{
private final sun.instrument.TransformerManager mTransformerManager;
descriptor: Lsun/instrument/TransformerManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.instrument.TransformerManager mRetransfomableTransformerManager;
descriptor: Lsun/instrument/TransformerManager;
flags: (0x0002) ACC_PRIVATE
private final long mNativeAgent;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mEnvironmentSupportsRedefineClasses;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean mEnvironmentSupportsRetransformClassesKnown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean mEnvironmentSupportsRetransformClasses;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final boolean mEnvironmentSupportsNativeMethodPrefix;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "instrument"
invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
1: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(long, boolean, boolean);
descriptor: (JZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.instrument.TransformerManager
dup
iconst_0
invokespecial sun.instrument.TransformerManager.<init>:(Z)V
putfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
2: aload 0
aconst_null
putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
3: aload 0
lload 1
putfield sun.instrument.InstrumentationImpl.mNativeAgent:J
4: aload 0
iload 3
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
5: aload 0
iconst_0
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
6: aload 0
iconst_0
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
7: aload 0
iload 4
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
8: return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/instrument/InstrumentationImpl;
0 9 1 nativeAgent J
0 9 3 environmentSupportsRedefineClasses Z
0 9 4 environmentSupportsNativeMethodPrefix Z
MethodParameters:
Name Flags
nativeAgent
environmentSupportsRedefineClasses
environmentSupportsNativeMethodPrefix
public void addTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
public synchronized void addTransformer(java.lang.instrument.ClassFileTransformer, boolean);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;Z)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'transformer' in addTransformer"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifeq 13
3: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
ifne 7
4: new java.lang.UnsupportedOperationException
dup
5: ldc "adding retransformable transformers is not supported in this environment"
6: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
ifnonnull 9
8: aload 0
new sun.instrument.TransformerManager
dup
iconst_1
invokespecial sun.instrument.TransformerManager.<init>:(Z)V
putfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
10: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
iconst_1
if_icmpne 16
11: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_1
invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
12: goto 16
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
14: aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
iconst_1
if_icmpne 16
15: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_1
invokevirtual sun.instrument.InstrumentationImpl.setHasTransformers:(JZ)V
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/instrument/InstrumentationImpl;
0 17 1 transformer Ljava/lang/instrument/ClassFileTransformer;
0 17 2 canRetransform Z
MethodParameters:
Name Flags
transformer
canRetransform
public synchronized boolean removeTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'transformer' in removeTransformer"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
astore 2
start local 2 3: aload 2
ifnull 11
4: aload 2
aload 1
invokevirtual sun.instrument.TransformerManager.removeTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
pop
5: aload 2
invokevirtual sun.instrument.TransformerManager.getTransformerCount:()I
ifne 10
6: aload 2
invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
ifeq 9
7: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.setHasRetransformableTransformers:(JZ)V
8: goto 10
9: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.setHasTransformers:(JZ)V
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/instrument/InstrumentationImpl;
0 12 1 transformer Ljava/lang/instrument/ClassFileTransformer;
3 12 2 mgr Lsun/instrument/TransformerManager;
MethodParameters:
Name Flags
transformer
public boolean isModifiableClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.lang.NullPointerException
dup
2: ldc "null passed as 'theClass' in isModifiableClass"
3: invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.isModifiableClass0:(JLjava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/instrument/InstrumentationImpl;
0 5 1 theClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
theClass
public boolean isModifiableModule(java.lang.Module);
descriptor: (Ljava/lang/Module;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "'module' is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/instrument/InstrumentationImpl;
0 3 1 module Ljava/lang/Module;
MethodParameters:
Name Flags
module
public boolean isRetransformClassesSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
ifne 3
1: aload 0
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported0:(J)Z
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
2: aload 0
iconst_1
putfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClassesKnown:Z
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRetransformClasses:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/instrument/InstrumentationImpl;
public void retransformClasses(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRetransformClassesSupported:()Z
ifne 4
1: new java.lang.UnsupportedOperationException
dup
2: ldc "retransformClasses is not supported in this environment"
3: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
arraylength
ifne 6
5: return
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.retransformClasses0:(J[Ljava/lang/Class;)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/instrument/InstrumentationImpl;
0 8 1 classes [Ljava/lang/Class;
Signature: ([Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
classes
public boolean isRedefineClassesSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsRedefineClasses:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public void redefineClasses(java.lang.instrument.ClassDefinition[]);
descriptor: ([Ljava/lang/instrument/ClassDefinition;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isRedefineClassesSupported:()Z
ifne 2
1: new java.lang.UnsupportedOperationException
dup
ldc "redefineClasses is not supported in this environment"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "null passed as 'definitions' in redefineClasses"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: goto 9
6: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
ifnonnull 8
7: new java.lang.NullPointerException
dup
ldc "element of 'definitions' is null in redefineClasses"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
arraylength
if_icmplt 6
end local 2 10: aload 1
arraylength
ifne 12
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.redefineClasses0:(J[Ljava/lang/instrument/ClassDefinition;)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/instrument/InstrumentationImpl;
0 14 1 definitions [Ljava/lang/instrument/ClassDefinition;
5 10 2 i I
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
definitions
public java.lang.Class[] getAllLoadedClasses();
descriptor: ()[Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
invokevirtual sun.instrument.InstrumentationImpl.getAllLoadedClasses0:(J)[Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public java.lang.Class[] getInitiatedClasses(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)[Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.getInitiatedClasses0:(JLjava/lang/ClassLoader;)[Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
0 1 1 loader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
loader
public long getObjectSize(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "null passed as 'objectToSize' in getObjectSize"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual sun.instrument.InstrumentationImpl.getObjectSize0:(JLjava/lang/Object;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/instrument/InstrumentationImpl;
0 3 1 objectToSize Ljava/lang/Object;
MethodParameters:
Name Flags
objectToSize
public void appendToBootstrapClassLoaderSearch(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
iconst_1
invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 jarfile Ljava/util/jar/JarFile;
MethodParameters:
Name Flags
jarfile
public void appendToSystemClassLoaderSearch(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
iconst_0
invokevirtual sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0:(JLjava/lang/String;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 jarfile Ljava/util/jar/JarFile;
MethodParameters:
Name Flags
jarfile
public boolean isNativeMethodPrefixSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.InstrumentationImpl.mEnvironmentSupportsNativeMethodPrefix:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/InstrumentationImpl;
public synchronized void setNativeMethodPrefix(java.lang.instrument.ClassFileTransformer, java.lang.String);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.instrument.InstrumentationImpl.isNativeMethodPrefixSupported:()Z
ifne 4
1: new java.lang.UnsupportedOperationException
dup
2: ldc "setNativeMethodPrefix is not supported in this environment"
3: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
5: new java.lang.NullPointerException
dup
6: ldc "null passed as 'transformer' in setNativeMethodPrefix"
7: invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.instrument.InstrumentationImpl.findTransformerManager:(Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
astore 3
start local 3 9: aload 3
ifnonnull 13
10: new java.lang.IllegalArgumentException
dup
11: ldc "transformer not registered in setNativeMethodPrefix"
12: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
aload 3
aload 1
aload 2
invokevirtual sun.instrument.TransformerManager.setNativeMethodPrefix:(Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)Z
pop
14: aload 3
invokevirtual sun.instrument.TransformerManager.getNativeMethodPrefixes:()[Ljava/lang/String;
astore 4
start local 4 15: aload 0
aload 0
getfield sun.instrument.InstrumentationImpl.mNativeAgent:J
aload 4
aload 3
invokevirtual sun.instrument.TransformerManager.isRetransformable:()Z
invokevirtual sun.instrument.InstrumentationImpl.setNativeMethodPrefixes:(J[Ljava/lang/String;Z)V
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/instrument/InstrumentationImpl;
0 17 1 transformer Ljava/lang/instrument/ClassFileTransformer;
0 17 2 prefix Ljava/lang/String;
9 17 3 mgr Lsun/instrument/TransformerManager;
15 17 4 prefixes [Ljava/lang/String;
MethodParameters:
Name Flags
transformer
prefix
public void redefineModule(java.lang.Module, java.util.Set<java.lang.Module>, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>, java.util.Set<java.lang.Class<?>>, java.util.Map<java.lang.Class<?>, java.util.List<java.lang.Class<?>>>);
descriptor: (Ljava/lang/Module;Ljava/util/Set;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=12, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokevirtual java.lang.Module.isNamed:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.instrument.InstrumentationImpl.isModifiableModule:(Ljava/lang/Module;)Z
ifne 4
3: new java.lang.instrument.UnmodifiableModuleException
dup
aload 1
invokevirtual java.lang.Module.getName:()Ljava/lang/String;
invokespecial java.lang.instrument.UnmodifiableModuleException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
aload 2
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
5: aload 2
aconst_null
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 7
6: new java.lang.NullPointerException
dup
ldc "'extraReads' contains null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual sun.instrument.InstrumentationImpl.cloneAndCheckMap:(Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
astore 3
8: aload 0
aload 1
aload 4
invokevirtual sun.instrument.InstrumentationImpl.cloneAndCheckMap:(Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
astore 4
9: new java.util.HashSet
dup
aload 5
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 5
10: aload 5
aconst_null
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 12
11: new java.lang.NullPointerException
dup
ldc "'extraUses' contains null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 13: aload 6
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 23
StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
14: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 15: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Class
astore 10
start local 10 16: aload 10
ifnonnull 18
17: new java.lang.NullPointerException
dup
ldc "'extraProvides' contains null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.Class
StackMap stack:
new java.util.ArrayList
dup
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 11
start local 11 19: aload 11
invokeinterface java.util.List.isEmpty:()Z
ifeq 21
20: new java.lang.IllegalArgumentException
dup
ldc "list of providers is empty"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: java.util.List
StackMap stack:
aload 11
aload 1
aload 10
invokedynamic accept(Ljava/lang/Module;Ljava/lang/Class;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$0(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V (6)
(Ljava/lang/Class;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
22: aload 7
aload 10
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 8 23: StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Set java.util.Map java.util.Map java.util.Set java.util.Map java.util.Map top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
24: aload 7
astore 6
25: aload 2
aload 1
invokedynamic accept(Ljava/lang/Module;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$1(Ljava/lang/Module;Ljava/lang/Module;)V (6)
(Ljava/lang/Module;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
26: aload 3
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 31
StackMap locals:
StackMap stack:
27: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 28: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 29: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
astore 11
start local 11 30: aload 11
aload 1
aload 10
invokedynamic accept(Ljava/lang/Module;Ljava/lang/String;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$2(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V (6)
(Ljava/lang/Module;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
end local 11 end local 10 end local 8 31: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
32: aload 4
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 37
StackMap locals:
StackMap stack:
33: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 34: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 35: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
astore 11
start local 11 36: aload 11
aload 1
aload 10
invokedynamic accept(Ljava/lang/Module;Ljava/lang/String;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$3(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V (6)
(Ljava/lang/Module;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
end local 11 end local 10 end local 8 37: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
38: aload 5
aload 1
invokedynamic accept(Ljava/lang/Module;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$4(Ljava/lang/Module;Ljava/lang/Class;)V (6)
(Ljava/lang/Class;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
39: aload 6
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 44
StackMap locals:
StackMap stack:
40: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 41: aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Class
astore 10
start local 10 42: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.List
astore 11
start local 11 43: aload 11
aload 1
aload 10
invokedynamic accept(Ljava/lang/Module;Ljava/lang/Class;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/instrument/InstrumentationImpl.lambda$5(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V (6)
(Ljava/lang/Class;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
end local 11 end local 10 end local 8 44: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 40
45: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lsun/instrument/InstrumentationImpl;
0 46 1 module Ljava/lang/Module;
0 46 2 extraReads Ljava/util/Set<Ljava/lang/Module;>;
0 46 3 extraExports Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
0 46 4 extraOpens Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
0 46 5 extraUses Ljava/util/Set<Ljava/lang/Class<*>;>;
0 46 6 extraProvides Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
13 46 7 tmpProvides Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
15 23 8 e Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
16 23 10 service Ljava/lang/Class<*>;
19 23 11 providers Ljava/util/List<Ljava/lang/Class<*>;>;
28 31 8 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
29 31 10 pkg Ljava/lang/String;
30 31 11 targets Ljava/util/Set<Ljava/lang/Module;>;
34 37 8 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
35 37 10 pkg Ljava/lang/String;
36 37 11 targets Ljava/util/Set<Ljava/lang/Module;>;
41 44 8 e Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;
42 44 10 service Ljava/lang/Class<*>;
43 44 11 providers Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/Module;Ljava/util/Set<Ljava/lang/Module;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;Ljava/util/Set<Ljava/lang/Class<*>;>;Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;>;)V
MethodParameters:
Name Flags
module
extraReads
extraExports
extraOpens
extraUses
extraProvides
private java.util.Map<java.lang.String, java.util.Set<java.lang.Module>> cloneAndCheckMap(java.lang.Module, java.util.Map<java.lang.String, java.util.Set<java.lang.Module>>);
descriptor: (Ljava/lang/Module;Ljava/util/Map;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.Map.isEmpty:()Z
ifeq 2
1: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
areturn
2: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 3: aload 1
invokevirtual java.lang.Module.getPackages:()Ljava/util/Set;
astore 4
start local 4 4: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 17
StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 5
start local 5 6: aload 5
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 7: aload 7
ifnonnull 9
8: new java.lang.NullPointerException
dup
ldc "package cannot be null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set java.util.Map$Entry java.util.Iterator java.lang.String
StackMap stack:
aload 4
aload 7
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 11
10: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not in module"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
aload 5
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 8
start local 8 12: aload 8
invokeinterface java.util.Set.isEmpty:()Z
ifeq 14
13: new java.lang.IllegalArgumentException
dup
ldc "set of targets is empty"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: java.util.Set
StackMap stack:
aload 8
aconst_null
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 16
15: new java.lang.NullPointerException
dup
ldc "set of targets cannot include null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 3
aload 7
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 5 17: StackMap locals: sun.instrument.InstrumentationImpl java.lang.Module java.util.Map java.util.Map java.util.Set top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
18: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/instrument/InstrumentationImpl;
0 19 1 module Ljava/lang/Module;
0 19 2 map Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
3 19 3 result Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
4 19 4 packages Ljava/util/Set<Ljava/lang/String;>;
6 17 5 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
7 17 7 pkg Ljava/lang/String;
12 17 8 targets Ljava/util/Set<Ljava/lang/Module;>;
Signature: (Ljava/lang/Module;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/Module;>;>;
MethodParameters:
Name Flags
module
map
private sun.instrument.TransformerManager findTransformerManager(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Lsun/instrument/TransformerManager;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
ifeq 2
1: aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
ifnull 5
3: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
aload 1
invokevirtual sun.instrument.TransformerManager.includesTransformer:(Ljava/lang/instrument/ClassFileTransformer;)Z
ifeq 5
4: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/instrument/InstrumentationImpl;
0 6 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
private native boolean isModifiableClass0(long, java.lang.Class<?>);
descriptor: (JLjava/lang/Class;)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (JLjava/lang/Class<*>;)Z
MethodParameters:
Name Flags
nativeAgent
theClass
private native boolean isRetransformClassesSupported0(long);
descriptor: (J)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
private native void setHasTransformers(long, boolean);
descriptor: (JZ)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
has
private native void setHasRetransformableTransformers(long, boolean);
descriptor: (JZ)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
has
private native void retransformClasses0(long, java.lang.Class<?>[]);
descriptor: (J[Ljava/lang/Class;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (J[Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
nativeAgent
classes
private native void redefineClasses0(long, java.lang.instrument.ClassDefinition[]);
descriptor: (J[Ljava/lang/instrument/ClassDefinition;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
nativeAgent
definitions
private native java.lang.Class[] getAllLoadedClasses0(long);
descriptor: (J)[Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
private native java.lang.Class[] getInitiatedClasses0(long, java.lang.ClassLoader);
descriptor: (JLjava/lang/ClassLoader;)[Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
loader
private native long getObjectSize0(long, java.lang.Object);
descriptor: (JLjava/lang/Object;)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.IntrinsicCandidate()
MethodParameters:
Name Flags
nativeAgent
objectToSize
private native void appendToClassLoaderSearch0(long, java.lang.String, boolean);
descriptor: (JLjava/lang/String;Z)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
jarfile
bootLoader
private native void setNativeMethodPrefixes(long, java.lang.String[], boolean);
descriptor: (J[Ljava/lang/String;Z)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
nativeAgent
prefixes
isRetransformable
private static void setAccessible(java.lang.reflect.AccessibleObject, boolean);
descriptor: (Ljava/lang/reflect/AccessibleObject;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new sun.instrument.InstrumentationImpl$1
dup
aload 0
iload 1
invokespecial sun.instrument.InstrumentationImpl$1.<init>:(Ljava/lang/reflect/AccessibleObject;Z)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ao Ljava/lang/reflect/AccessibleObject;
0 2 1 accessible Z
MethodParameters:
Name Flags
ao final
accessible final
private void loadClassAndStartAgent(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 1: aload 4
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: iconst_0
istore 8
start local 8 5: aload 5
aload 2
6: iconst_2
anewarray java.lang.Class
dup
iconst_0
7: ldc Ljava/lang/String;
aastore
dup
iconst_1
8: ldc Ljava/lang/instrument/Instrumentation;
aastore
9: invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
10: iconst_1
istore 8
11: goto 14
StackMap locals: sun.instrument.InstrumentationImpl java.lang.String java.lang.String java.lang.String java.lang.ClassLoader java.lang.Class java.lang.reflect.Method java.lang.NoSuchMethodException int
StackMap stack: java.lang.NoSuchMethodException
12: astore 9
start local 9 13: aload 9
astore 7
end local 9 14: StackMap locals:
StackMap stack:
aload 6
ifnonnull 21
15: aload 5
aload 2
16: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
17: invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
18: goto 21
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
19: pop
20: aload 7
athrow
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 24
22: new java.lang.StringBuilder
dup
ldc "method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " must be declared public"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 9
start local 9 23: new java.lang.IllegalAccessException
dup
aload 9
invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
athrow
end local 9 24: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 27
25: aload 5
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
invokevirtual java.lang.Module.isNamed:()Z
ifne 27
26: aload 6
iconst_1
invokestatic sun.instrument.InstrumentationImpl.setAccessible:(Ljava/lang/reflect/AccessibleObject;Z)V
27: StackMap locals:
StackMap stack:
iload 8
ifeq 30
28: aload 6
aconst_null
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 0
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
29: goto 31
30: StackMap locals:
StackMap stack:
aload 6
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
31: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/instrument/InstrumentationImpl;
0 32 1 classname Ljava/lang/String;
0 32 2 methodname Ljava/lang/String;
0 32 3 optionsString Ljava/lang/String;
1 32 4 mainAppLoader Ljava/lang/ClassLoader;
2 32 5 javaAgentClass Ljava/lang/Class<*>;
3 32 6 m Ljava/lang/reflect/Method;
4 32 7 firstExc Ljava/lang/NoSuchMethodException;
5 32 8 twoArgAgent Z
13 14 9 x Ljava/lang/NoSuchMethodException;
23 24 9 msg Ljava/lang/String;
Exception table:
from to target type
5 11 12 Class java.lang.NoSuchMethodException
15 18 19 Class java.lang.NoSuchMethodException
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
methodname
optionsString
private void loadClassAndCallPremain(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "premain"
aload 2
invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 classname Ljava/lang/String;
0 2 2 optionsString Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
optionsString
private void loadClassAndCallAgentmain(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc "agentmain"
aload 2
invokevirtual sun.instrument.InstrumentationImpl.loadClassAndStartAgent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/InstrumentationImpl;
0 2 1 classname Ljava/lang/String;
0 2 2 optionsString Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
classname
optionsString
private byte[] transform(java.lang.Module, java.lang.ClassLoader, java.lang.String, java.lang.Class<?>, java.security.ProtectionDomain, byte[], );
descriptor: (Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[BZ)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iload 7
ifeq 2
1: aload 0
getfield sun.instrument.InstrumentationImpl.mRetransfomableTransformerManager:Lsun/instrument/TransformerManager;
goto 3
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.instrument.InstrumentationImpl.mTransformerManager:Lsun/instrument/TransformerManager;
3: StackMap locals:
StackMap stack: sun.instrument.TransformerManager
astore 8
start local 8 4: aload 1
ifnonnull 11
5: aload 4
ifnull 8
6: aload 4
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 1
7: goto 11
8: StackMap locals: sun.instrument.TransformerManager
StackMap stack:
aload 2
ifnonnull 9
invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
goto 10
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.ClassLoader.getUnnamedModule:()Ljava/lang/Module;
10: StackMap locals:
StackMap stack: java.lang.Module
astore 1
11: StackMap locals:
StackMap stack:
aload 8
ifnonnull 13
12: aconst_null
areturn
13: StackMap locals:
StackMap stack:
aload 8
aload 1
14: aload 2
15: aload 3
16: aload 4
17: aload 5
18: aload 6
19: invokevirtual sun.instrument.TransformerManager.transform:(Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/instrument/InstrumentationImpl;
0 20 1 module Ljava/lang/Module;
0 20 2 loader Ljava/lang/ClassLoader;
0 20 3 classname Ljava/lang/String;
0 20 4 classBeingRedefined Ljava/lang/Class<*>;
0 20 5 protectionDomain Ljava/security/ProtectionDomain;
0 20 6 classfileBuffer [B
0 20 7 isRetransformer Z
4 20 8 mgr Lsun/instrument/TransformerManager;
Signature: (Ljava/lang/Module;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;[BZ)[B
MethodParameters:
Name Flags
module
loader
classname
classBeingRedefined
protectionDomain
classfileBuffer
isRetransformer
public static void loadAgent(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic sun.instrument.InstrumentationImpl.loadAgent0:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private static native void loadAgent0(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
path
private static void lambda$0(java.lang.Module, java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=3
start local 2 0: aload 2
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
aload 0
if_acmpeq 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not a "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 5 2 p Ljava/lang/Class<*>;
private static void lambda$1(java.lang.Module, java.lang.Module);
descriptor: (Ljava/lang/Module;Ljava/lang/Module;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokestatic jdk.internal.module.Modules.addReads:(Ljava/lang/Module;Ljava/lang/Module;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 m Ljava/lang/Module;
private static void lambda$2(java.lang.Module, java.lang.String, java.lang.Module);
descriptor: (Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.internal.module.Modules.addExports:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 m Ljava/lang/Module;
private static void lambda$3(java.lang.Module, java.lang.String, java.lang.Module);
descriptor: (Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.internal.module.Modules.addOpens:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 m Ljava/lang/Module;
private static void lambda$4(java.lang.Module, java.lang.Class);
descriptor: (Ljava/lang/Module;Ljava/lang/Class;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokestatic jdk.internal.module.Modules.addUses:(Ljava/lang/Module;Ljava/lang/Class;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 service Ljava/lang/Class<*>;
private static void lambda$5(java.lang.Module, java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.internal.module.Modules.addProvides:(Ljava/lang/Module;Ljava/lang/Class;Ljava/lang/Class;)V
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 1 2 p Ljava/lang/Class<*>;
}
SourceFile: "InstrumentationImpl.java"
NestMembers:
sun.instrument.InstrumentationImpl$1
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
sun.instrument.InstrumentationImpl$1