class org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup
super_class: java.lang.Object
{
private final int phase;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long timeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, ? extends org.springframework.context.Lifecycle> lifecycleBeans;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;
private final boolean autoStartupOnly;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember> members;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroupMember;>;
private int smartMemberCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final org.springframework.context.support.DefaultLifecycleProcessor this$0;
descriptor: Lorg/springframework/context/support/DefaultLifecycleProcessor;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(int, long, java.util.Map<java.lang.String, ? extends org.springframework.context.Lifecycle>, );
descriptor: (Lorg/springframework/context/support/DefaultLifecycleProcessor;IJLjava/util/Map;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 2 start local 3 start local 5 start local 6 0: aload 0
aload 1
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
3: aload 0
iload 2
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.phase:I
4: aload 0
lload 3
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.timeout:J
5: aload 0
aload 5
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.lifecycleBeans:Ljava/util/Map;
6: aload 0
iload 6
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.autoStartupOnly:Z
7: return
end local 6 end local 5 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
0 8 2 phase I
0 8 3 timeout J
0 8 5 lifecycleBeans Ljava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;
0 8 6 autoStartupOnly Z
Signature: (IJLjava/util/Map<Ljava/lang/String;+Lorg/springframework/context/Lifecycle;>;Z)V
MethodParameters:
Name Flags
this$0 final
phase
timeout
lifecycleBeans
autoStartupOnly
public void add(java.lang.String, org.springframework.context.Lifecycle);
descriptor: (Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
new org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember
dup
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
aload 1
aload 2
invokespecial org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember.<init>:(Lorg/springframework/context/support/DefaultLifecycleProcessor;Ljava/lang/String;Lorg/springframework/context/Lifecycle;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 2
instanceof org.springframework.context.SmartLifecycle
ifeq 3
2: aload 0
dup
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.smartMemberCount:I
iconst_1
iadd
putfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.smartMemberCount:I
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
0 4 1 name Ljava/lang/String;
0 4 2 bean Lorg/springframework/context/Lifecycle;
MethodParameters:
Name Flags
name
bean
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
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$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Starting beans in phase "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.phase:I
invokevirtual java.lang.StringBuilder.append:(I)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:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
5: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 8
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup top java.util.Iterator
StackMap stack:
6: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember
astore 1
start local 1 7: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.lifecycleBeans:Ljava/util/Map;
aload 1
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember.name:Ljava/lang/String;
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.autoStartupOnly:Z
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.doStart:(Ljava/util/Map;Ljava/lang/String;Z)V
end local 1 8: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
7 8 1 member Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroupMember;
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
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$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Stopping beans in phase "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.phase:I
invokevirtual java.lang.StringBuilder.append:(I)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:
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokestatic java.util.Collections.reverseOrder:()Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
5: new java.util.concurrent.CountDownLatch
dup
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.smartMemberCount:I
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 1
start local 1 6: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
astore 2
start local 2 7: new java.util.HashSet
dup
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.lifecycleBeans:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 8: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.members:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 15
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup java.util.concurrent.CountDownLatch java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
9: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember
astore 4
start local 4 10: aload 3
aload 4
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember.name:Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 13
11: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.lifecycleBeans:Ljava/util/Map;
aload 4
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember.name:Ljava/lang/String;
aload 1
aload 2
invokevirtual org.springframework.context.support.DefaultLifecycleProcessor.doStop:(Ljava/util/Map;Ljava/lang/String;Ljava/util/concurrent/CountDownLatch;Ljava/util/Set;)V
12: goto 15
13: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup java.util.concurrent.CountDownLatch java.util.Set java.util.Set org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember java.util.Iterator
StackMap stack:
aload 4
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroupMember.bean:Lorg/springframework/context/Lifecycle;
instanceof org.springframework.context.SmartLifecycle
ifeq 15
14: aload 1
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
end local 4 15: StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup java.util.concurrent.CountDownLatch java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
16: aload 1
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.timeout:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
pop
17: aload 1
invokevirtual java.util.concurrent.CountDownLatch.getCount:()J
lconst_0
lcmp
ifle 27
aload 2
invokeinterface java.util.Set.isEmpty:()Z
ifne 27
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 27
18: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.this$0:Lorg/springframework/context/support/DefaultLifecycleProcessor;
getfield org.springframework.context.support.DefaultLifecycleProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Failed to shut down "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface java.util.Set.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bean"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: aload 2
invokeinterface java.util.Set.size:()I
iconst_1
if_icmple 20
ldc "s"
goto 21
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup java.util.concurrent.CountDownLatch java.util.Set java.util.Set
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder
20: ldc ""
StackMap locals: org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup java.util.concurrent.CountDownLatch java.util.Set java.util.Set
StackMap stack: org.apache.commons.logging.Log java.lang.StringBuilder java.lang.String
21: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with phase value "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.phase:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " within timeout of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.timeout:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "ms: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
24: goto 27
25: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
26: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
27: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroup;
6 28 1 latch Ljava/util/concurrent/CountDownLatch;
7 28 2 countDownBeanNames Ljava/util/Set<Ljava/lang/String;>;
8 28 3 lifecycleBeanNames Ljava/util/Set<Ljava/lang/String;>;
10 15 4 member Lorg/springframework/context/support/DefaultLifecycleProcessor$LifecycleGroupMember;
Exception table:
from to target type
16 24 25 Class java.lang.InterruptedException
}
SourceFile: "DefaultLifecycleProcessor.java"
NestHost: org.springframework.context.support.DefaultLifecycleProcessor
InnerClasses:
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