public class org.hibernate.bytecode.spi.InstrumentedClassLoader extends java.lang.ClassLoader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.bytecode.spi.InstrumentedClassLoader
super_class: java.lang.ClassLoader
{
private final org.hibernate.bytecode.spi.ClassTransformer classTransformer;
descriptor: Lorg/hibernate/bytecode/spi/ClassTransformer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.ClassLoader, org.hibernate.bytecode.spi.ClassTransformer);
descriptor: (Ljava/lang/ClassLoader;Lorg/hibernate/bytecode/spi/ClassTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.hibernate.bytecode.spi.InstrumentedClassLoader this
start local 1 // java.lang.ClassLoader parent
start local 2 // org.hibernate.bytecode.spi.ClassTransformer classTransformer
0: .line 28
aload 0 /* this */
aload 1 /* parent */
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/ClassLoader;)V
1: .line 29
aload 0 /* this */
aload 2 /* classTransformer */
putfield org.hibernate.bytecode.spi.InstrumentedClassLoader.classTransformer:Lorg/hibernate/bytecode/spi/ClassTransformer;
2: .line 30
return
end local 2 // org.hibernate.bytecode.spi.ClassTransformer classTransformer
end local 1 // java.lang.ClassLoader parent
end local 0 // org.hibernate.bytecode.spi.InstrumentedClassLoader this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/bytecode/spi/InstrumentedClassLoader;
0 3 1 parent Ljava/lang/ClassLoader;
0 3 2 classTransformer Lorg/hibernate/bytecode/spi/ClassTransformer;
MethodParameters:
Name Flags
parent
classTransformer
public java.lang.Class loadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 // org.hibernate.bytecode.spi.InstrumentedClassLoader this
start local 1 // java.lang.String name
0: .line 34
aload 1 /* name */
ldc "java."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 1
aload 0 /* this */
getfield org.hibernate.bytecode.spi.InstrumentedClassLoader.classTransformer:Lorg/hibernate/bytecode/spi/ClassTransformer;
ifnonnull 2
1: .line 35
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.getParent:()Ljava/lang/ClassLoader;
aload 1 /* name */
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
2: .line 38
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* name */
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 2 /* c */
start local 2 // java.lang.Class c
3: .line 39
aload 2 /* c */
ifnull 5
4: .line 40
aload 2 /* c */
areturn
5: .line 43
StackMap locals: java.lang.Class
StackMap stack:
aload 0 /* this */
new java.lang.StringBuilder
dup
aload 1 /* name */
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 3 /* is */
start local 3 // java.io.InputStream is
6: .line 44
aload 3 /* is */
ifnonnull 8
7: .line 45
new java.lang.ClassNotFoundException
dup
new java.lang.StringBuilder
dup
aload 1 /* name */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
8: .line 49
StackMap locals: java.io.InputStream
StackMap stack:
aload 3 /* is */
invokestatic org.hibernate.bytecode.spi.ByteCodeHelper.readByteCode:(Ljava/io/InputStream;)[B
astore 4 /* originalBytecode */
start local 4 // byte[] originalBytecode
9: .line 50
aload 0 /* this */
getfield org.hibernate.bytecode.spi.InstrumentedClassLoader.classTransformer:Lorg/hibernate/bytecode/spi/ClassTransformer;
aload 0 /* this */
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.getParent:()Ljava/lang/ClassLoader;
aload 1 /* name */
aconst_null
aconst_null
aload 4 /* originalBytecode */
invokeinterface org.hibernate.bytecode.spi.ClassTransformer.transform:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
astore 5 /* transformedBytecode */
start local 5 // byte[] transformedBytecode
10: .line 51
aload 5 /* transformedBytecode */
ifnonnull 13
11: .line 54
aload 0 /* this */
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.getParent:()Ljava/lang/ClassLoader;
aload 1 /* name */
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
12: areturn
13: .line 57
StackMap locals: byte[] byte[]
StackMap stack:
aload 0 /* this */
aload 1 /* name */
aload 5 /* transformedBytecode */
iconst_0
aload 5 /* transformedBytecode */
arraylength
invokevirtual org.hibernate.bytecode.spi.InstrumentedClassLoader.defineClass:(Ljava/lang/String;[BII)Ljava/lang/Class;
14: areturn
end local 5 // byte[] transformedBytecode
end local 4 // byte[] originalBytecode
15: .line 60
StackMap locals: org.hibernate.bytecode.spi.InstrumentedClassLoader java.lang.String java.lang.Class java.io.InputStream
StackMap stack: java.lang.Throwable
astore 4 /* t */
start local 4 // java.lang.Throwable t
16: .line 61
new java.lang.ClassNotFoundException
dup
new java.lang.StringBuilder
dup
aload 1 /* name */
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4 /* t */
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 // java.lang.Throwable t
end local 3 // java.io.InputStream is
end local 2 // java.lang.Class c
end local 1 // java.lang.String name
end local 0 // org.hibernate.bytecode.spi.InstrumentedClassLoader this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/hibernate/bytecode/spi/InstrumentedClassLoader;
0 17 1 name Ljava/lang/String;
3 17 2 c Ljava/lang/Class;
6 17 3 is Ljava/io/InputStream;
9 15 4 originalBytecode [B
10 15 5 transformedBytecode [B
16 17 4 t Ljava/lang/Throwable;
Exception table:
from to target type
8 12 15 Class java.lang.Throwable
13 14 15 Class java.lang.Throwable
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
name
}
SourceFile: "InstrumentedClassLoader.java"