public class org.springframework.context.weaving.DefaultContextLoadTimeWeaver implements org.springframework.instrument.classloading.LoadTimeWeaver, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.DisposableBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.context.weaving.DefaultContextLoadTimeWeaver
super_class: java.lang.Object
{
protected final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private org.springframework.instrument.classloading.LoadTimeWeaver loadTimeWeaver;
descriptor: Lorg/springframework/instrument/classloading/LoadTimeWeaver;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
public void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
2: aload 0
aload 1
invokevirtual org.springframework.context.weaving.DefaultContextLoadTimeWeaver.setBeanClassLoader:(Ljava/lang/ClassLoader;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
0 4 1 beanClassLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
beanClassLoader
public void setBeanClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.springframework.context.weaving.DefaultContextLoadTimeWeaver.createServerSpecificLoadTimeWeaver:(Ljava/lang/ClassLoader;)Lorg/springframework/instrument/classloading/LoadTimeWeaver;
astore 2
start local 2 1: aload 2
ifnull 8
2: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 6
3: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Determined server-specific load-time weaver: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
6: StackMap locals: org.springframework.instrument.classloading.LoadTimeWeaver
StackMap stack:
aload 0
aload 2
putfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
7: goto 22
8: StackMap locals:
StackMap stack:
invokestatic org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.isInstrumentationAvailable:()Z
ifeq 12
9: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
ldc "Found Spring's JVM agent for instrumentation"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
10: aload 0
new org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
putfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
11: goto 22
12: StackMap locals:
StackMap stack:
aload 0
new org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
putfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
13: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 22
14: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Using reflective load-time weaver for class loader: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
invokeinterface org.springframework.instrument.classloading.LoadTimeWeaver.getInstrumentableClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
17: goto 22
18: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 3
start local 3 19: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " Specify a custom LoadTimeWeaver or start your "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: ldc "Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
0 23 1 classLoader Ljava/lang/ClassLoader;
1 23 2 serverSpecificLoadTimeWeaver Lorg/springframework/instrument/classloading/LoadTimeWeaver;
19 22 3 ex Ljava/lang/IllegalStateException;
Exception table:
from to target type
12 17 18 Class java.lang.IllegalStateException
MethodParameters:
Name Flags
classLoader
protected org.springframework.instrument.classloading.LoadTimeWeaver createServerSpecificLoadTimeWeaver(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Lorg/springframework/instrument/classloading/LoadTimeWeaver;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ldc "org.apache.catalina"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
2: new org.springframework.instrument.classloading.tomcat.TomcatLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.tomcat.TomcatLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
3: areturn
4: StackMap locals: java.lang.String
StackMap stack:
aload 2
ldc "org.glassfish"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
5: new org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
6: areturn
7: StackMap locals:
StackMap stack:
aload 2
ldc "org.jboss.modules"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
8: new org.springframework.instrument.classloading.jboss.JBossLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.jboss.JBossLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
9: areturn
10: StackMap locals:
StackMap stack:
aload 2
ldc "com.ibm.ws.classloader"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 13
11: new org.springframework.instrument.classloading.websphere.WebSphereLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.websphere.WebSphereLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
12: areturn
13: StackMap locals:
StackMap stack:
aload 2
ldc "weblogic"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 19
14: new org.springframework.instrument.classloading.weblogic.WebLogicLoadTimeWeaver
dup
aload 1
invokespecial org.springframework.instrument.classloading.weblogic.WebLogicLoadTimeWeaver.<init>:(Ljava/lang/ClassLoader;)V
15: areturn
16: StackMap locals:
StackMap stack: java.lang.Exception
astore 3
start local 3 17: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 19
18: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Could not obtain server-specific LoadTimeWeaver: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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;
invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
end local 3 19: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
0 20 1 classLoader Ljava/lang/ClassLoader;
1 20 2 name Ljava/lang/String;
17 19 3 ex Ljava/lang/Exception;
Exception table:
from to target type
1 3 16 Class java.lang.Exception
4 6 16 Class java.lang.Exception
7 9 16 Class java.lang.Exception
10 12 16 Class java.lang.Exception
13 15 16 Class java.lang.Exception
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
classLoader
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
instanceof org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver
ifeq 6
1: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
2: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Removing all registered transformers for class loader: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
invokeinterface org.springframework.instrument.classloading.LoadTimeWeaver.getInstrumentableClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
checkcast org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver
invokevirtual org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.removeTransformers:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
public void addTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Not initialized"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
aload 1
invokeinterface org.springframework.instrument.classloading.LoadTimeWeaver.addTransformer:(Ljava/lang/instrument/ClassFileTransformer;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
0 5 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
public java.lang.ClassLoader getInstrumentableClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Not initialized"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
invokeinterface org.springframework.instrument.classloading.LoadTimeWeaver.getInstrumentableClassLoader:()Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
public java.lang.ClassLoader getThrowawayClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Not initialized"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.context.weaving.DefaultContextLoadTimeWeaver.loadTimeWeaver:Lorg/springframework/instrument/classloading/LoadTimeWeaver;
invokeinterface org.springframework.instrument.classloading.LoadTimeWeaver.getThrowawayClassLoader:()Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/context/weaving/DefaultContextLoadTimeWeaver;
}
SourceFile: "DefaultContextLoadTimeWeaver.java"