public class org.hibernate.bytecode.internal.javassist.JavassistClassTransformer extends org.hibernate.bytecode.spi.AbstractClassTransformerImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer
super_class: org.hibernate.bytecode.spi.AbstractClassTransformerImpl
{
private static final org.hibernate.internal.CoreMessageLogger LOG;
descriptor: Lorg/hibernate/internal/CoreMessageLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/hibernate/internal/CoreMessageLogger;
1: ldc Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
2: invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
checkcast org.hibernate.internal.CoreMessageLogger
putstatic org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.LOG:Lorg/hibernate/internal/CoreMessageLogger;
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.hibernate.bytecode.buildtime.spi.ClassFilter, org.hibernate.bytecode.buildtime.spi.FieldFilter);
descriptor: (Lorg/hibernate/bytecode/buildtime/spi/ClassFilter;Lorg/hibernate/bytecode/buildtime/spi/FieldFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.hibernate.bytecode.spi.AbstractClassTransformerImpl.<init>:(Lorg/hibernate/bytecode/buildtime/spi/ClassFilter;Lorg/hibernate/bytecode/buildtime/spi/FieldFilter;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;
0 2 1 classFilter Lorg/hibernate/bytecode/buildtime/spi/ClassFilter;
0 2 2 fieldFilter Lorg/hibernate/bytecode/buildtime/spi/FieldFilter;
MethodParameters:
Name Flags
classFilter
fieldFilter
protected byte[] doTransform(java.lang.ClassLoader, java.lang.String, java.lang.Class, java.security.ProtectionDomain, byte[]);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new javassist.bytecode.ClassFile
dup
new java.io.DataInputStream
dup
new java.io.ByteArrayInputStream
dup
aload 5
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
invokespecial javassist.bytecode.ClassFile.<init>:(Ljava/io/DataInputStream;)V
astore 6
start local 6 1: goto 5
end local 6 2: StackMap locals:
StackMap stack: java.io.IOException
pop
3: getstatic org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 2
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToBuildEnhancementMetamodel:(Ljava/lang/String;)V
4: aload 5
areturn
start local 6 5: StackMap locals: javassist.bytecode.ClassFile
StackMap stack:
new javassist.ClassPool
dup
invokespecial javassist.ClassPool.<init>:()V
astore 7
start local 7 6: aload 7
invokevirtual javassist.ClassPool.appendSystemPath:()Ljavassist/ClassPath;
pop
7: aload 7
new javassist.ClassClassPath
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokespecial javassist.ClassClassPath.<init>:(Ljava/lang/Class;)V
invokevirtual javassist.ClassPool.appendClassPath:(Ljavassist/ClassPath;)Ljavassist/ClassPath;
pop
8: aload 7
new javassist.ClassClassPath
dup
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokespecial javassist.ClassClassPath.<init>:(Ljava/lang/Class;)V
invokevirtual javassist.ClassPool.appendClassPath:(Ljavassist/ClassPath;)Ljavassist/ClassPath;
pop
9: aload 7
new java.io.ByteArrayInputStream
dup
aload 5
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual javassist.ClassPool.makeClassIfNew:(Ljava/io/InputStream;)Ljavassist/CtClass;
pop
10: goto 13
11: StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] javassist.bytecode.ClassFile javassist.ClassPool
StackMap stack: java.io.IOException
astore 8
start local 8 12: new java.lang.RuntimeException
dup
aload 8
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aload 8
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 13: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 7
invokevirtual org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.getFieldTransformer:(Ljavassist/bytecode/ClassFile;Ljavassist/ClassPool;)Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
astore 8
start local 8 14: aload 8
ifnull 36
15: getstatic org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.LOG:Lorg/hibernate/internal/CoreMessageLogger;
ldc "Enhancing %s"
aload 2
invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
16: aconst_null
astore 9
start local 9 17: aload 8
aload 6
invokevirtual org.hibernate.bytecode.internal.javassist.FieldTransformer.transform:(Ljavassist/bytecode/ClassFile;)V
18: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 10
start local 10 19: new java.io.DataOutputStream
dup
aload 10
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 9
20: aload 6
aload 9
invokevirtual javassist.bytecode.ClassFile.write:(Ljava/io/DataOutputStream;)V
21: aload 10
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 12
22: aload 9
ifnull 26
23: aload 9
invokevirtual java.io.DataOutputStream.close:()V
24: goto 26
25: StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] javassist.bytecode.ClassFile javassist.ClassPool org.hibernate.bytecode.internal.javassist.FieldTransformer java.io.DataOutputStream java.io.ByteArrayOutputStream top byte[]
StackMap stack: java.io.IOException
pop
26: StackMap locals:
StackMap stack:
aload 12
areturn
end local 10 27: StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] javassist.bytecode.ClassFile javassist.ClassPool org.hibernate.bytecode.internal.javassist.FieldTransformer java.io.DataOutputStream
StackMap stack: java.lang.Exception
astore 10
start local 10 28: getstatic org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.LOG:Lorg/hibernate/internal/CoreMessageLogger;
aload 10
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokeinterface org.hibernate.internal.CoreMessageLogger.unableToTransformClass:(Ljava/lang/String;)V
29: new org.hibernate.HibernateException
dup
new java.lang.StringBuilder
dup
ldc "Unable to transform class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
athrow
end local 10 30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 11
31: aload 9
ifnull 35
32: aload 9
invokevirtual java.io.DataOutputStream.close:()V
33: goto 35
34: StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] javassist.bytecode.ClassFile javassist.ClassPool org.hibernate.bytecode.internal.javassist.FieldTransformer java.io.DataOutputStream top java.lang.Throwable
StackMap stack: java.io.IOException
pop
35: StackMap locals:
StackMap stack:
aload 11
athrow
end local 9 36: StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] javassist.bytecode.ClassFile javassist.ClassPool org.hibernate.bytecode.internal.javassist.FieldTransformer
StackMap stack:
aload 5
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 37 0 this Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;
0 37 1 loader Ljava/lang/ClassLoader;
0 37 2 className Ljava/lang/String;
0 37 3 classBeingRedefined Ljava/lang/Class;
0 37 4 protectionDomain Ljava/security/ProtectionDomain;
0 37 5 classfileBuffer [B
1 2 6 classfile Ljavassist/bytecode/ClassFile;
5 37 6 classfile Ljavassist/bytecode/ClassFile;
6 37 7 cp Ljavassist/ClassPool;
12 13 8 e Ljava/io/IOException;
14 37 8 transformer Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
17 36 9 out Ljava/io/DataOutputStream;
19 27 10 byteStream Ljava/io/ByteArrayOutputStream;
28 30 10 e Ljava/lang/Exception;
Exception table:
from to target type
0 1 2 Class java.io.IOException
9 10 11 Class java.io.IOException
22 24 25 Class java.io.IOException
17 22 27 Class java.lang.Exception
17 22 30 any
27 30 30 any
31 33 34 Class java.io.IOException
MethodParameters:
Name Flags
loader
className
classBeingRedefined
protectionDomain
classfileBuffer
protected org.hibernate.bytecode.internal.javassist.FieldTransformer getFieldTransformer(javassist.bytecode.ClassFile, javassist.ClassPool);
descriptor: (Ljavassist/bytecode/ClassFile;Ljavassist/ClassPool;)Lorg/hibernate/bytecode/internal/javassist/FieldTransformer;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.alreadyInstrumented:(Ljavassist/bytecode/ClassFile;)Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
new org.hibernate.bytecode.internal.javassist.FieldTransformer
dup
3: new org.hibernate.bytecode.internal.javassist.JavassistClassTransformer$1
dup
aload 0
aload 1
invokespecial org.hibernate.bytecode.internal.javassist.JavassistClassTransformer$1.<init>:(Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;Ljavassist/bytecode/ClassFile;)V
4: aload 2
5: invokespecial org.hibernate.bytecode.internal.javassist.FieldTransformer.<init>:(Lorg/hibernate/bytecode/internal/javassist/FieldFilter;Ljavassist/ClassPool;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;
0 6 1 classfile Ljavassist/bytecode/ClassFile;
0 6 2 classPool Ljavassist/ClassPool;
MethodParameters:
Name Flags
classfile final
classPool final
private boolean alreadyInstrumented(javassist.bytecode.ClassFile);
descriptor: (Ljavassist/bytecode/ClassFile;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual javassist.bytecode.ClassFile.getInterfaces:()[Ljava/lang/String;
astore 2
start local 2 1: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.hibernate.bytecode.internal.javassist.JavassistClassTransformer javassist.bytecode.ClassFile java.lang.String[] top int int java.lang.String[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: ldc Lorg/hibernate/bytecode/internal/javassist/FieldHandled;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
end local 3 5: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;
0 8 1 classfile Ljavassist/bytecode/ClassFile;
1 8 2 interfaces [Ljava/lang/String;
3 5 3 anInterface Ljava/lang/String;
MethodParameters:
Name Flags
classfile
static org.hibernate.bytecode.buildtime.spi.FieldFilter access$0(org.hibernate.bytecode.internal.javassist.JavassistClassTransformer);
descriptor: (Lorg/hibernate/bytecode/internal/javassist/JavassistClassTransformer;)Lorg/hibernate/bytecode/buildtime/spi/FieldFilter;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield org.hibernate.bytecode.internal.javassist.JavassistClassTransformer.fieldFilter:Lorg/hibernate/bytecode/buildtime/spi/FieldFilter;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "JavassistClassTransformer.java"
NestMembers:
org.hibernate.bytecode.internal.javassist.JavassistClassTransformer$1
InnerClasses:
org.hibernate.bytecode.internal.javassist.JavassistClassTransformer$1