public class org.springframework.context.support.DefaultLifecycleProcessor implements org.springframework.context.LifecycleProcessor, org.springframework.beans.factory.BeanFactoryAware
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.context.support.DefaultLifecycleProcessor
super_class: java.lang.Object
{
private final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long timeoutPerShutdownPhase;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean running;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory;
descriptor: Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
2: aload 0
ldc 30000
putfield org.springframework.context.support.DefaultLifecycleProcessor.timeoutPerShutdownPhase:J
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
public void setTimeoutPerShutdownPhase(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield org.springframework.context.support.DefaultLifecycleProcessor.timeoutPerShutdownPhase:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 2 1 timeoutPerShutdownPhase J
MethodParameters:
Name Flags
timeoutPerShutdownPhase
public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.springframework.beans.factory.config.ConfigurableListableBeanFactory
ifne 4
1: new java.lang.IllegalArgumentException
dup
2: new java.lang.StringBuilder
dup
ldc "DefaultLifecycleProcessor requires a ConfigurableListableBeanFactory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast org.springframework.beans.factory.config.ConfigurableListableBeanFactory
putfield org.springframework.context.support.DefaultLifecycleProcessor.beanFactory:Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 6 1 beanFactory Lorg/springframework/beans/factory/BeanFactory;
MethodParameters:
Name Flags
beanFactory
private org.springframework.beans.factory.config.ConfigurableListableBeanFactory getBeanFactory();
descriptor: ()Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.beanFactory:Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: org.springframework.beans.factory.config.ConfigurableListableBeanFactory
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "No BeanFactory available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
1 5 1 beanFactory Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.startBeans:(Z)V
1: aload 0
iconst_1
putfield org.springframework.context.support.DefaultLifecycleProcessor.running:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.stopBeans:()V
1: aload 0
iconst_0
putfield org.springframework.context.support.DefaultLifecycleProcessor.running:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
public void onRefresh();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.startBeans:(Z)V
1: aload 0
iconst_1
putfield org.springframework.context.support.DefaultLifecycleProcessor.running:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
public void onClose();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.stopBeans:()V
1: aload 0
iconst_0
putfield org.springframework.context.support.DefaultLifecycleProcessor.running:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
public boolean isRunning();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.running:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
private void startBeans(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getLifecycleBeans:()Ljava/util/Map;
astore 2
start local 2 1: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 3
start local 3 2: aload 2
aload 0
iload 1
aload 3
aload 2
invokedynamic accept(Lorg/springframework/context/support/DefaultLifecycleProcessor;ZLjava/util/Map;Ljava/util/Map;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
org/springframework/context/support/DefaultLifecycleProcessor.lambda$0(ZLjava/util/Map;Ljava/util/Map;Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V (7)
(Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
3: aload 3
invokeinterface java.util.Map.isEmpty:()Z
ifne 5
4: aload 3
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokedynamic accept()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
org/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup.start()V (5)
(Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;)V
invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
5: StackMap locals: java.util.Map java.util.Map
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 6 1 autoStartupOnly Z
1 6 2 lifecycleBeans Ljava/util/Map<Ljava/lang/String;Lorg/springframework/context/Lifecycle;>;
2 6 3 phases Ljava/util/Map<Ljava/lang/Integer;Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;>;
MethodParameters:
Name Flags
autoStartupOnly
private void doStart(java.util.Map<java.lang.String, ? extends org.springframework.context.Lifecycle>, java.lang.String, );
descriptor: (Ljava/util/Map;Ljava/lang/String;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.context.Lifecycle
astore 4
start local 4 1: aload 4
ifnull 18
aload 4
aload 0
if_acmpeq 18
2: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getBeanFactory:()Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
aload 2
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getDependenciesForBean:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 3: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 7
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.lang.String int org.springframework.context.Lifecycle java.lang.String[] top int int java.lang.String[]
StackMap stack:
4: aload 9
iload 7
aaload
astore 6
start local 6 5: aload 0
aload 1
aload 6
iload 3
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.doStart:(Ljava/util/Map;Ljava/lang/String;Z)V
end local 6 6: iinc 7 1
StackMap locals:
StackMap stack:
7: iload 7
iload 8
if_icmplt 4
8: aload 4
invokeinterface org.springframework.context.Lifecycle.isRunning:()Z
ifne 18
9: iload 3
ifeq 10
aload 4
instanceof org.springframework.context.SmartLifecycle
ifeq 10
aload 4
checkcast org.springframework.context.SmartLifecycle
invokeinterface org.springframework.context.SmartLifecycle.isAutoStartup:()Z
ifeq 18
10: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.lang.String int org.springframework.context.Lifecycle java.lang.String[]
StackMap stack:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 12
11: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Starting bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' of type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
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;
ldc "]"
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.trace:(Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.springframework.context.Lifecycle.start:()V
13: goto 16
14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
start local 6 15: new org.springframework.context.ApplicationContextException
dup
new java.lang.StringBuilder
dup
ldc "Failed to start bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokespecial org.springframework.context.ApplicationContextException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 16: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 18
17: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Successfully started bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
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.debug:(Ljava/lang/Object;)V
end local 5 18: StackMap locals:
StackMap stack:
return
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 Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 19 1 lifecycleBeans Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;
0 19 2 beanName Ljava/lang/String;
0 19 3 autoStartupOnly Z
1 19 4 bean Lorg/springframework/context/Lifecycle;
3 18 5 dependenciesForBean [Ljava/lang/String;
5 6 6 dependency Ljava/lang/String;
15 16 6 ex Ljava/lang/Throwable;
Exception table:
from to target type
12 13 14 Class java.lang.Throwable
Signature: (Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;Ljava/lang/String;Z)V
MethodParameters:
Name Flags
lifecycleBeans
beanName
autoStartupOnly
private void stopBeans();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getLifecycleBeans:()Ljava/util/Map;
astore 1
start local 1 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 2: aload 1
aload 0
aload 2
aload 1
invokedynamic accept(Lorg/springframework/context/support/DefaultLifecycleProcessor;Ljava/util/Map;Ljava/util/Map;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
org/springframework/context/support/DefaultLifecycleProcessor.lambda$3(Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V (7)
(Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
3: aload 2
invokeinterface java.util.Map.isEmpty:()Z
ifne 10
4: new java.util.ArrayList
dup
aload 2
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 5: aload 3
invokestatic java.util.Collections.reverseOrder:()Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
6: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.util.Map java.util.List top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
astore 4
start local 4 8: aload 2
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop:()V
end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 3 10: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.util.Map
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
1 11 1 lifecycleBeans Ljava/util/Map<Ljava/lang/String;Lorg/springframework/context/Lifecycle;>;
2 11 2 phases Ljava/util/Map<Ljava/lang/Integer;Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;>;
5 10 3 keys Ljava/util/List<Ljava/lang/Integer;>;
8 9 4 key Ljava/lang/Integer;
private void doStop(java.util.Map<java.lang.String, ? extends org.springframework.context.Lifecycle>, java.lang.String, java.util.concurrent.CountDownLatch, java.util.Set<java.lang.String>);
descriptor: (Ljava/util/Map;Ljava/lang/String;Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.context.Lifecycle
astore 5
start local 5 1: aload 5
ifnull 31
2: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getBeanFactory:()Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
aload 2
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getDependentBeans:(Ljava/lang/String;)[Ljava/lang/String;
astore 6
start local 6 3: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 7
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.lang.String java.util.concurrent.CountDownLatch java.util.Set org.springframework.context.Lifecycle java.lang.String[] top int int java.lang.String[]
StackMap stack:
4: aload 10
iload 8
aaload
astore 7
start local 7 5: aload 0
aload 1
aload 7
aload 3
aload 4
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.doStop:(Ljava/util/Map;Ljava/lang/String;Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;)V
end local 7 6: iinc 8 1
StackMap locals:
StackMap stack:
7: iload 8
iload 9
if_icmplt 4
8: aload 5
invokeinterface org.springframework.context.Lifecycle.isRunning:()Z
ifeq 25
9: aload 5
instanceof org.springframework.context.SmartLifecycle
ifeq 17
10: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 14
11: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Asking bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' of type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 5
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;
ldc "] to stop"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
14: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor java.util.Map java.lang.String java.util.concurrent.CountDownLatch java.util.Set org.springframework.context.Lifecycle java.lang.String[]
StackMap stack:
aload 4
aload 2
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
15: aload 5
checkcast org.springframework.context.SmartLifecycle
aload 0
aload 3
aload 4
aload 2
invokedynamic run(Lorg/springframework/context/support/DefaultLifecycleProcessor;Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;Ljava/lang/String;)Ljava/lang/Runnable;
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:
()V
org/springframework/context/support/DefaultLifecycleProcessor.lambda$4(Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;Ljava/lang/String;)V (7)
()V
invokeinterface org.springframework.context.SmartLifecycle.stop:(Ljava/lang/Runnable;)V
16: goto 31
17: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
ifeq 21
18: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Stopping bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' of type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: aload 5
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;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
21: StackMap locals:
StackMap stack:
aload 5
invokeinterface org.springframework.context.Lifecycle.stop:()V
22: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 31
23: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Successfully stopped bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
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.debug:(Ljava/lang/Object;)V
24: goto 31
25: StackMap locals:
StackMap stack:
aload 5
instanceof org.springframework.context.SmartLifecycle
ifeq 31
26: aload 3
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
27: goto 31
28: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
start local 7 29: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 31
30: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Failed to stop bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 end local 6 31: StackMap locals:
StackMap stack:
return
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 Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 32 1 lifecycleBeans Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;
0 32 2 beanName Ljava/lang/String;
0 32 3 latch Ljava/util/concurrent/CountDownLatch;
0 32 4 countDownBeanNames Ljava/util/Set<Ljava/lang/String;>;
1 32 5 bean Lorg/springframework/context/Lifecycle;
3 31 6 dependentBeans [Ljava/lang/String;
5 6 7 dependentBean Ljava/lang/String;
29 31 7 ex Ljava/lang/Throwable;
Exception table:
from to target type
8 27 28 Class java.lang.Throwable
Signature: (Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;Ljava/lang/String;Ljava/util/concurrent/CountDownLatch;Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
lifecycleBeans
beanName final
latch final
countDownBeanNames final
protected java.util.Map<java.lang.String, org.springframework.context.Lifecycle> getLifecycleBeans();
descriptor: ()Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=12, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getBeanFactory:()Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
astore 1
start local 1 1: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
astore 2
start local 2 2: aload 1
ldc Lorg/springframework/context/Lifecycle;
iconst_0
iconst_0
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBeanNamesForType:(Ljava/lang/Class;ZZ)[Ljava/lang/String;
astore 3
start local 3 3: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 17
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map java.lang.String[] top int int java.lang.String[]
StackMap stack:
4: aload 7
iload 5
aaload
astore 4
start local 4 5: aload 4
invokestatic org.springframework.beans.factory.BeanFactoryUtils.transformedBeanName:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 6: aload 1
aload 8
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.isFactoryBean:(Ljava/lang/String;)Z
istore 9
start local 9 7: iload 9
ifeq 8
new java.lang.StringBuilder
dup
ldc "&"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 9
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String int
StackMap stack:
8: aload 4
StackMap locals:
StackMap stack: java.lang.String
9: astore 10
start local 10 10: aload 1
aload 8
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.containsSingleton:(Ljava/lang/String;)Z
ifeq 12
11: iload 9
ifeq 13
aload 0
ldc Lorg/springframework/context/Lifecycle;
aload 10
aload 1
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.matchesBeanType:(Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;)Z
ifne 13
12: StackMap locals: java.lang.String
StackMap stack:
aload 0
ldc Lorg/springframework/context/SmartLifecycle;
aload 10
aload 1
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.matchesBeanType:(Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;)Z
ifeq 16
13: StackMap locals:
StackMap stack:
aload 1
aload 10
invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBean:(Ljava/lang/String;)Ljava/lang/Object;
astore 11
start local 11 14: aload 11
aload 0
if_acmpeq 16
aload 11
instanceof org.springframework.context.Lifecycle
ifeq 16
15: aload 2
aload 8
aload 11
checkcast org.springframework.context.Lifecycle
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 9 end local 8 end local 4 16: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor org.springframework.beans.factory.config.ConfigurableListableBeanFactory java.util.Map java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 6
if_icmplt 4
18: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
1 19 1 beanFactory Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;
2 19 2 beans Ljava/util/Map<Ljava/lang/String;Lorg/springframework/context/Lifecycle;>;
3 19 3 beanNames [Ljava/lang/String;
5 16 4 beanName Ljava/lang/String;
6 16 8 beanNameToRegister Ljava/lang/String;
7 16 9 isFactoryBean Z
10 16 10 beanNameToCheck Ljava/lang/String;
14 16 11 bean Ljava/lang/Object;
Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/springframework/context/Lifecycle;>;
private boolean matchesBeanType(java.lang.Class<?>, java.lang.String, org.springframework.beans.factory.BeanFactory);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 2
invokeinterface org.springframework.beans.factory.BeanFactory.getType:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 1: aload 4
ifnull 2
aload 1
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.Class
StackMap stack:
2: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 3 1 targetType Ljava/lang/Class<*>;
0 3 2 beanName Ljava/lang/String;
0 3 3 beanFactory Lorg/springframework/beans/factory/BeanFactory;
1 3 4 beanType Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Lorg/springframework/beans/factory/BeanFactory;)Z
MethodParameters:
Name Flags
targetType
beanName
beanFactory
protected int getPhase(org.springframework.context.Lifecycle);
descriptor: (Lorg/springframework/context/Lifecycle;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.springframework.context.Phased
ifeq 1
aload 1
checkcast org.springframework.context.Phased
invokeinterface org.springframework.context.Phased.getPhase:()I
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 3 1 bean Lorg/springframework/context/Lifecycle;
MethodParameters:
Name Flags
bean
private void lambda$0(boolean, java.util.Map, java.util.Map, java.lang.String, org.springframework.context.Lifecycle);
descriptor: (ZLjava/util/Map;Ljava/util/Map;Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=7, args_size=6
start local 0 start local 4 start local 5 0: iload 1
ifeq 1
aload 5
instanceof org.springframework.context.SmartLifecycle
ifeq 7
aload 5
checkcast org.springframework.context.SmartLifecycle
invokeinterface org.springframework.context.SmartLifecycle.isAutoStartup:()Z
ifeq 7
1: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getPhase:(Lorg/springframework/context/Lifecycle;)I
istore 6
start local 6 2: aload 2
3: iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
4: aload 0
iload 6
aload 3
iload 1
invokedynamic apply(Lorg/springframework/context/support/DefaultLifecycleProcessor;ILjava/util/Map;Z)Ljava/util/function/Function;
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;)Ljava/lang/Object;
org/springframework/context/support/DefaultLifecycleProcessor.lambda$1(ILjava/util/Map;ZLjava/lang/Integer;)Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup; (7)
(Ljava/lang/Integer;)Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
5: invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
6: aload 4
aload 5
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.add:(Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
end local 6 7: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 8 4 beanName Ljava/lang/String;
0 8 5 bean Lorg/springframework/context/Lifecycle;
2 7 6 phase I
private void lambda$3(java.util.Map, java.util.Map, java.lang.String, org.springframework.context.Lifecycle);
descriptor: (Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=7, args_size=5
start local 0 start local 3 start local 4 0: aload 0
aload 4
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.getPhase:(Lorg/springframework/context/Lifecycle;)I
istore 5
start local 5 1: aload 1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
astore 6
start local 6 2: aload 6
ifnonnull 5
3: new org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
dup
aload 0
iload 5
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.timeoutPerShutdownPhase:J
aload 2
iconst_0
invokespecial org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.<init>:(Lorg/springframework/context/support/DefaultLifecycleProcessor;IJLjava/util/Map;Z)V
astore 6
4: aload 1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: int org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
StackMap stack:
aload 6
aload 3
aload 4
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.add:(Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
end local 6 end local 5 6: return
end local 4 end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 7 3 beanName Ljava/lang/String;
0 7 4 bean Lorg/springframework/context/Lifecycle;
1 6 5 shutdownPhase I
2 6 6 group Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
private void lambda$4(java.util.concurrent.CountDownLatch, java.util.Set, java.lang.String);
descriptor: (Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 0 0: aload 1
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
1: aload 2
aload 3
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 4
3: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Bean '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' completed its stop procedure"
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.debug:(Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
private org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup lambda$1(int, java.util.Map, boolean, java.lang.Integer);
descriptor: (ILjava/util/Map;ZLjava/lang/Integer;)Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=5, args_size=5
start local 0 start local 4 0: new org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
dup
aload 0
iload 1
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor.timeoutPerShutdownPhase:J
aload 2
iload 3
invokespecial org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.<init>:(Lorg/springframework/context/support/DefaultLifecycleProcessor;IJLjava/util/Map;Z)V
areturn
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor;
0 1 4 p Ljava/lang/Integer;
}
SourceFile: "DefaultLifecycleProcessor.java"
NestMembers:
org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private LifecycleGroup = org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup of org.springframework.context.support.DefaultLifecycleProcessor
private LifecycleGroupMember = org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember of org.springframework.context.support.DefaultLifecycleProcessor