public class java.lang.ThreadGroup implements java.lang.Thread$UncaughtExceptionHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.lang.ThreadGroup
super_class: java.lang.Object
{
private final java.lang.ThreadGroup parent;
descriptor: Ljava/lang/ThreadGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0000)
int maxPriority;
descriptor: I
flags: (0x0000)
boolean destroyed;
descriptor: Z
flags: (0x0000)
boolean daemon;
descriptor: Z
flags: (0x0000)
int nUnstartedThreads;
descriptor: I
flags: (0x0000)
int nthreads;
descriptor: I
flags: (0x0000)
java.lang.Thread[] threads;
descriptor: [Ljava/lang/Thread;
flags: (0x0000)
int ngroups;
descriptor: I
flags: (0x0000)
java.lang.ThreadGroup[] groups;
descriptor: [Ljava/lang/ThreadGroup;
flags: (0x0000)
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.lang.ThreadGroup.nUnstartedThreads:I
2: aload 0
ldc "system"
putfield java.lang.ThreadGroup.name:Ljava/lang/String;
3: aload 0
bipush 10
putfield java.lang.ThreadGroup.maxPriority:I
4: aload 0
aconst_null
putfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ThreadGroup;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
aload 1
invokespecial java.lang.ThreadGroup.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public void <init>(java.lang.ThreadGroup, java.lang.String);
descriptor: (Ljava/lang/ThreadGroup;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic java.lang.ThreadGroup.checkParentAccess:(Ljava/lang/ThreadGroup;)Ljava/lang/Void;
aload 1
aload 2
invokespecial java.lang.ThreadGroup.<init>:(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 parent Ljava/lang/ThreadGroup;
0 2 2 name Ljava/lang/String;
MethodParameters:
Name Flags
parent
name
private void <init>(java.lang.Void, java.lang.ThreadGroup, java.lang.String);
descriptor: (Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.lang.ThreadGroup.nUnstartedThreads:I
2: aload 0
aload 3
putfield java.lang.ThreadGroup.name:Ljava/lang/String;
3: aload 0
aload 2
getfield java.lang.ThreadGroup.maxPriority:I
putfield java.lang.ThreadGroup.maxPriority:I
4: aload 0
aload 2
getfield java.lang.ThreadGroup.daemon:Z
putfield java.lang.ThreadGroup.daemon:Z
5: aload 0
aload 2
putfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
6: aload 2
aload 0
invokevirtual java.lang.ThreadGroup.add:(Ljava/lang/ThreadGroup;)V
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/ThreadGroup;
0 8 1 unused Ljava/lang/Void;
0 8 2 parent Ljava/lang/ThreadGroup;
0 8 3 name Ljava/lang/String;
MethodParameters:
Name Flags
unused
parent
name
private static java.lang.Void checkParentAccess(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)Ljava/lang/Void;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 parent Ljava/lang/ThreadGroup;
MethodParameters:
Name Flags
parent
public final java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ThreadGroup.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
public final java.lang.ThreadGroup getParent();
descriptor: ()Ljava/lang/ThreadGroup;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
ifnull 2
1: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
invokevirtual java.lang.ThreadGroup.checkAccess:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ThreadGroup;
public final int getMaxPriority();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ThreadGroup.maxPriority:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
public final boolean isDaemon();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ThreadGroup.daemon:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
public synchronized boolean isDestroyed();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
public final void setDaemon(boolean);
descriptor: (Z)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aload 0
iload 1
putfield java.lang.ThreadGroup.daemon:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ThreadGroup;
0 3 1 daemon Z
MethodParameters:
Name Flags
daemon
public final void setMaxPriority(int);
descriptor: (I)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 4
monitorenter
1: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
2: iload 1
iconst_1
if_icmplt 3
iload 1
bipush 10
if_icmple 5
3: StackMap locals: java.lang.ThreadGroup int top top java.lang.ThreadGroup
StackMap stack:
aload 4
monitorexit
4: return
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
ifnull 6
iload 1
aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
getfield java.lang.ThreadGroup.maxPriority:I
invokestatic java.lang.Math.min:(II)I
goto 7
StackMap locals:
StackMap stack: java.lang.ThreadGroup
6: iload 1
StackMap locals: java.lang.ThreadGroup int top top java.lang.ThreadGroup
StackMap stack: java.lang.ThreadGroup int
7: putfield java.lang.ThreadGroup.maxPriority:I
8: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 2
start local 2 9: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 12
10: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 2
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 3
start local 3 11: goto 13
end local 3 12: StackMap locals: java.lang.ThreadGroup int int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 3
start local 3 13: StackMap locals: java.lang.ThreadGroup int int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 4
monitorexit
14: goto 17
end local 3 end local 2 StackMap locals: java.lang.ThreadGroup int top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
15: aload 4
monitorexit
16: athrow
start local 2 start local 3 17: StackMap locals: java.lang.ThreadGroup int int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 4
start local 4 18: goto 21
19: StackMap locals: int
StackMap stack:
aload 3
iload 4
aaload
iload 1
invokevirtual java.lang.ThreadGroup.setMaxPriority:(I)V
20: iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
iload 2
if_icmplt 19
end local 4 22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/lang/ThreadGroup;
0 23 1 pri I
9 15 2 ngroupsSnapshot I
17 23 2 ngroupsSnapshot I
11 12 3 groupsSnapshot [Ljava/lang/ThreadGroup;
13 15 3 groupsSnapshot [Ljava/lang/ThreadGroup;
17 23 3 groupsSnapshot [Ljava/lang/ThreadGroup;
18 22 4 i I
Exception table:
from to target type
1 4 15 any
5 14 15 any
15 16 15 any
MethodParameters:
Name Flags
pri
public final boolean parentOf(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: goto 4
1: StackMap locals:
StackMap stack:
aload 1
aload 0
if_acmpne 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
astore 1
StackMap locals:
StackMap stack:
4: aload 1
ifnonnull 1
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ThreadGroup;
0 6 1 g Ljava/lang/ThreadGroup;
MethodParameters:
Name Flags
g
public final void checkAccess();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
aload 0
invokevirtual java.lang.SecurityManager.checkAccess:(Ljava/lang/ThreadGroup;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/ThreadGroup;
1 4 1 security Ljava/lang/SecurityManager;
public int activeCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 4
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 4
2: aload 4
monitorexit
3: iconst_0
ireturn
4: StackMap locals: java.lang.ThreadGroup top top top java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.nthreads:I
istore 1
start local 1 5: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 2
start local 2 6: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 9
7: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 2
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 3
start local 3 8: goto 10
end local 3 9: StackMap locals: java.lang.ThreadGroup int int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 3
start local 3 10: StackMap locals: java.lang.ThreadGroup int int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 4
monitorexit
11: goto 14
end local 3 end local 2 end local 1 StackMap locals: java.lang.ThreadGroup top top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
start local 1 start local 2 start local 3 14: StackMap locals: java.lang.ThreadGroup int int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 4
start local 4 15: goto 18
16: StackMap locals: int
StackMap stack:
iload 1
aload 3
iload 4
aaload
invokevirtual java.lang.ThreadGroup.activeCount:()I
iadd
istore 1
17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
iload 2
if_icmplt 16
end local 4 19: iload 1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/lang/ThreadGroup;
5 12 1 result I
14 20 1 result I
6 12 2 ngroupsSnapshot I
14 20 2 ngroupsSnapshot I
8 9 3 groupsSnapshot [Ljava/lang/ThreadGroup;
10 12 3 groupsSnapshot [Ljava/lang/ThreadGroup;
14 20 3 groupsSnapshot [Ljava/lang/ThreadGroup;
15 19 4 i I
Exception table:
from to target type
1 3 12 any
4 11 12 any
12 13 12 any
public int enumerate(java.lang.Thread[]);
descriptor: ([Ljava/lang/Thread;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aload 0
aload 1
iconst_0
iconst_1
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;IZ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 list [Ljava/lang/Thread;
MethodParameters:
Name Flags
list
public int enumerate(java.lang.Thread[], boolean);
descriptor: ([Ljava/lang/Thread;Z)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aload 0
aload 1
iconst_0
iload 2
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;IZ)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 list [Ljava/lang/Thread;
0 2 2 recurse Z
MethodParameters:
Name Flags
list
recurse
private int enumerate(java.lang.Thread[], int, boolean);
descriptor: ([Ljava/lang/Thread;IZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 0
dup
astore 6
monitorenter
3: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 6
4: aload 6
monitorexit
5: iconst_0
ireturn
6: StackMap locals: int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.nthreads:I
istore 7
start local 7 7: iload 7
aload 1
arraylength
iload 2
isub
if_icmple 9
8: aload 1
arraylength
iload 2
isub
istore 7
9: StackMap locals: int
StackMap stack:
iconst_0
istore 8
start local 8 10: goto 14
11: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 8
aaload
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 13
12: aload 1
iload 2
iinc 2 1
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 8
aaload
aastore
13: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
iload 7
if_icmplt 11
end local 8 15: iload 3
ifeq 21
16: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 4
17: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 20
18: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 4
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 5
19: goto 21
20: StackMap locals:
StackMap stack:
aconst_null
astore 5
end local 7 21: StackMap locals:
StackMap stack:
aload 6
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 6
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
iload 3
ifeq 31
26: iconst_0
istore 6
start local 6 27: goto 30
28: StackMap locals: int
StackMap stack:
aload 5
iload 6
aaload
aload 1
iload 2
iconst_1
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;IZ)I
istore 2
29: iinc 6 1
StackMap locals:
StackMap stack:
30: iload 6
iload 4
if_icmplt 28
end local 6 31: StackMap locals:
StackMap stack:
iload 2
ireturn
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 Ljava/lang/ThreadGroup;
0 32 1 list [Ljava/lang/Thread;
0 32 2 n I
0 32 3 recurse Z
1 32 4 ngroupsSnapshot I
2 32 5 groupsSnapshot [Ljava/lang/ThreadGroup;
7 21 7 nt I
10 15 8 i I
27 31 6 i I
Exception table:
from to target type
3 5 23 any
6 22 23 any
23 24 23 any
MethodParameters:
Name Flags
list
n
recurse
public int activeGroupCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 4
2: aload 3
monitorexit
3: iconst_0
ireturn
4: StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 1
start local 1 5: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 8
6: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 1
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals: java.lang.ThreadGroup int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 2
start local 2 9: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 3
monitorexit
10: goto 13
end local 2 end local 1 StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
start local 1 start local 2 13: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[]
StackMap stack:
iload 1
istore 3
start local 3 14: iconst_0
istore 4
start local 4 15: goto 18
16: StackMap locals: int int
StackMap stack:
iload 3
aload 2
iload 4
aaload
invokevirtual java.lang.ThreadGroup.activeGroupCount:()I
iadd
istore 3
17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
iload 1
if_icmplt 16
end local 4 19: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/lang/ThreadGroup;
5 11 1 ngroupsSnapshot I
13 20 1 ngroupsSnapshot I
7 8 2 groupsSnapshot [Ljava/lang/ThreadGroup;
9 11 2 groupsSnapshot [Ljava/lang/ThreadGroup;
13 20 2 groupsSnapshot [Ljava/lang/ThreadGroup;
14 20 3 n I
15 19 4 i I
Exception table:
from to target type
1 3 11 any
4 10 11 any
11 12 11 any
public int enumerate(java.lang.ThreadGroup[]);
descriptor: ([Ljava/lang/ThreadGroup;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aload 0
aload 1
iconst_0
iconst_1
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/ThreadGroup;IZ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 list [Ljava/lang/ThreadGroup;
MethodParameters:
Name Flags
list
public int enumerate(java.lang.ThreadGroup[], boolean);
descriptor: ([Ljava/lang/ThreadGroup;Z)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
1: aload 0
aload 1
iconst_0
iload 2
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/ThreadGroup;IZ)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
0 2 1 list [Ljava/lang/ThreadGroup;
0 2 2 recurse Z
MethodParameters:
Name Flags
list
recurse
private int enumerate(java.lang.ThreadGroup[], int, boolean);
descriptor: ([Ljava/lang/ThreadGroup;IZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aload 0
dup
astore 6
monitorenter
3: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 6
4: aload 6
monitorexit
5: iconst_0
ireturn
6: StackMap locals: int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 7
start local 7 7: iload 7
aload 1
arraylength
iload 2
isub
if_icmple 9
8: aload 1
arraylength
iload 2
isub
istore 7
9: StackMap locals: int
StackMap stack:
iload 7
ifle 12
10: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iconst_0
aload 1
iload 2
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: iload 2
iload 7
iadd
istore 2
12: StackMap locals:
StackMap stack:
iload 3
ifeq 18
13: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 4
14: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 17
15: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 4
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 5
16: goto 18
17: StackMap locals:
StackMap stack:
aconst_null
astore 5
end local 7 18: StackMap locals:
StackMap stack:
aload 6
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 6
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
iload 3
ifeq 28
23: iconst_0
istore 6
start local 6 24: goto 27
25: StackMap locals: int
StackMap stack:
aload 5
iload 6
aaload
aload 1
iload 2
iconst_1
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/ThreadGroup;IZ)I
istore 2
26: iinc 6 1
StackMap locals:
StackMap stack:
27: iload 6
iload 4
if_icmplt 25
end local 6 28: StackMap locals:
StackMap stack:
iload 2
ireturn
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 29 0 this Ljava/lang/ThreadGroup;
0 29 1 list [Ljava/lang/ThreadGroup;
0 29 2 n I
0 29 3 recurse Z
1 29 4 ngroupsSnapshot I
2 29 5 groupsSnapshot [Ljava/lang/ThreadGroup;
7 18 7 ng I
24 28 6 i I
Exception table:
from to target type
3 5 20 any
6 19 20 any
20 21 20 any
MethodParameters:
Name Flags
list
n
recurse
public final void stop();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual java.lang.ThreadGroup.stopOrSuspend:(Z)Z
ifeq 2
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.stop:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ThreadGroup;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "1.2")
public final void interrupt();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
2: iconst_0
istore 4
start local 4 3: goto 6
4: StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 4
aaload
invokevirtual java.lang.Thread.interrupt:()V
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
aload 0
getfield java.lang.ThreadGroup.nthreads:I
if_icmplt 4
end local 4 7: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 1
start local 1 8: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 11
9: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 1
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 2
start local 2 10: goto 12
end local 2 11: StackMap locals: java.lang.ThreadGroup int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 2
start local 2 12: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 3
monitorexit
13: goto 16
end local 2 end local 1 StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
start local 1 start local 2 16: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 3
start local 3 17: goto 20
18: StackMap locals: int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.ThreadGroup.interrupt:()V
19: iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
iload 1
if_icmplt 18
end local 3 21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/lang/ThreadGroup;
8 14 1 ngroupsSnapshot I
16 22 1 ngroupsSnapshot I
10 11 2 groupsSnapshot [Ljava/lang/ThreadGroup;
12 14 2 groupsSnapshot [Ljava/lang/ThreadGroup;
16 22 2 groupsSnapshot [Ljava/lang/ThreadGroup;
3 7 4 i I
17 21 3 i I
Exception table:
from to target type
1 13 14 any
14 15 14 any
public final void suspend();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.lang.ThreadGroup.stopOrSuspend:(Z)Z
ifeq 2
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.suspend:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ThreadGroup;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "1.2")
private boolean stopOrSuspend(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 3
start local 3 2: aconst_null
astore 5
start local 5 3: aload 0
dup
astore 6
monitorenter
4: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
5: iconst_0
istore 7
start local 7 6: goto 13
7: StackMap locals: java.lang.ThreadGroup int int java.lang.Thread top java.lang.ThreadGroup[] java.lang.ThreadGroup int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 7
aaload
aload 3
if_acmpne 9
8: iconst_1
istore 2
goto 12
9: StackMap locals:
StackMap stack:
iload 1
ifeq 11
10: aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 7
aaload
invokevirtual java.lang.Thread.suspend:()V
goto 12
11: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 7
aaload
invokevirtual java.lang.Thread.stop:()V
12: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
aload 0
getfield java.lang.ThreadGroup.nthreads:I
if_icmplt 7
end local 7 14: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 4
start local 4 15: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 17
16: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 4
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 5
17: StackMap locals: java.lang.ThreadGroup int int java.lang.Thread int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 6
monitorexit
18: goto 21
end local 4 StackMap locals: java.lang.ThreadGroup int int java.lang.Thread top java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
19: aload 6
monitorexit
20: athrow
start local 4 21: StackMap locals: java.lang.ThreadGroup int int java.lang.Thread int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 6
start local 6 22: goto 27
23: StackMap locals: int
StackMap stack:
aload 5
iload 6
aaload
iload 1
invokevirtual java.lang.ThreadGroup.stopOrSuspend:(Z)Z
ifne 24
iload 2
ifne 24
iconst_0
goto 25
StackMap locals:
StackMap stack:
24: iconst_1
StackMap locals:
StackMap stack: int
25: istore 2
26: iinc 6 1
StackMap locals:
StackMap stack:
27: iload 6
iload 4
if_icmplt 23
end local 6 28: iload 2
ireturn
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 29 0 this Ljava/lang/ThreadGroup;
0 29 1 suspend Z
1 29 2 suicide Z
2 29 3 us Ljava/lang/Thread;
15 19 4 ngroupsSnapshot I
21 29 4 ngroupsSnapshot I
3 29 5 groupsSnapshot [Ljava/lang/ThreadGroup;
6 14 7 i I
22 28 6 i I
Exception table:
from to target type
4 18 19 any
19 20 19 any
MethodParameters:
Name Flags
suspend
public final void resume();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
2: iconst_0
istore 4
start local 4 3: goto 6
4: StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 4
aaload
invokevirtual java.lang.Thread.resume:()V
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
aload 0
getfield java.lang.ThreadGroup.nthreads:I
if_icmplt 4
end local 4 7: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 1
start local 1 8: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 11
9: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 1
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 2
start local 2 10: goto 12
end local 2 11: StackMap locals: java.lang.ThreadGroup int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 2
start local 2 12: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 3
monitorexit
13: goto 16
end local 2 end local 1 StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
start local 1 start local 2 16: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 3
start local 3 17: goto 20
18: StackMap locals: int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.ThreadGroup.resume:()V
19: iinc 3 1
StackMap locals:
StackMap stack:
20: iload 3
iload 1
if_icmplt 18
end local 3 21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/lang/ThreadGroup;
8 14 1 ngroupsSnapshot I
16 22 1 ngroupsSnapshot I
10 11 2 groupsSnapshot [Ljava/lang/ThreadGroup;
12 14 2 groupsSnapshot [Ljava/lang/ThreadGroup;
16 22 2 groupsSnapshot [Ljava/lang/ThreadGroup;
3 7 4 i I
17 21 3 i I
Exception table:
from to target type
1 13 14 any
14 15 14 any
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "1.2")
public final void destroy();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
dup
astore 3
monitorenter
1: aload 0
invokevirtual java.lang.ThreadGroup.checkAccess:()V
2: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifne 3
aload 0
getfield java.lang.ThreadGroup.nthreads:I
ifle 4
3: StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack:
new java.lang.IllegalThreadStateException
dup
invokespecial java.lang.IllegalThreadStateException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 1
start local 1 5: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 8
6: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 1
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals: java.lang.ThreadGroup int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 2
start local 2 9: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
ifnull 15
10: aload 0
iconst_1
putfield java.lang.ThreadGroup.destroyed:Z
11: aload 0
iconst_0
putfield java.lang.ThreadGroup.ngroups:I
12: aload 0
aconst_null
putfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
13: aload 0
iconst_0
putfield java.lang.ThreadGroup.nthreads:I
14: aload 0
aconst_null
putfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
15: StackMap locals:
StackMap stack:
aload 3
monitorexit
16: goto 19
end local 2 end local 1 StackMap locals: java.lang.ThreadGroup top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
start local 1 start local 2 19: StackMap locals: java.lang.ThreadGroup int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 3
start local 3 20: goto 23
21: StackMap locals: int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.ThreadGroup.destroy:()V
22: iinc 3 1
StackMap locals:
StackMap stack:
23: iload 3
iload 1
if_icmplt 21
end local 3 24: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
ifnull 26
25: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
aload 0
invokevirtual java.lang.ThreadGroup.remove:(Ljava/lang/ThreadGroup;)V
26: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/lang/ThreadGroup;
5 17 1 ngroupsSnapshot I
19 27 1 ngroupsSnapshot I
7 8 2 groupsSnapshot [Ljava/lang/ThreadGroup;
9 17 2 groupsSnapshot [Ljava/lang/ThreadGroup;
19 27 2 groupsSnapshot [Ljava/lang/ThreadGroup;
20 24 3 i I
Exception table:
from to target type
1 16 17 any
17 18 17 any
private final void add(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 3
2: new java.lang.IllegalThreadStateException
dup
invokespecial java.lang.IllegalThreadStateException.<init>:()V
athrow
3: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnonnull 6
4: aload 0
iconst_4
anewarray java.lang.ThreadGroup
putfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
5: goto 8
StackMap locals:
StackMap stack:
6: aload 0
getfield java.lang.ThreadGroup.ngroups:I
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
arraylength
if_icmpne 8
7: aload 0
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
aload 0
getfield java.lang.ThreadGroup.ngroups:I
iconst_2
imul
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
putfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
8: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
aload 0
getfield java.lang.ThreadGroup.ngroups:I
aload 1
aastore
9: aload 0
dup
getfield java.lang.ThreadGroup.ngroups:I
iconst_1
iadd
putfield java.lang.ThreadGroup.ngroups:I
10: aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/lang/ThreadGroup;
0 15 1 g Ljava/lang/ThreadGroup;
Exception table:
from to target type
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
g
private void remove(java.lang.ThreadGroup);
descriptor: (Ljava/lang/ThreadGroup;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 4
2: aload 2
monitorexit
3: return
4: StackMap locals: java.lang.ThreadGroup
StackMap stack:
iconst_0
istore 3
start local 3 5: goto 12
6: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 3
aaload
aload 1
if_acmpne 11
7: aload 0
dup
getfield java.lang.ThreadGroup.ngroups:I
iconst_1
isub
putfield java.lang.ThreadGroup.ngroups:I
8: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 3
iconst_1
iadd
aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 3
aload 0
getfield java.lang.ThreadGroup.ngroups:I
iload 3
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
aload 0
getfield java.lang.ThreadGroup.ngroups:I
aconst_null
aastore
10: goto 13
11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
aload 0
getfield java.lang.ThreadGroup.ngroups:I
if_icmplt 6
end local 3 13: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.nthreads:I
ifne 15
14: aload 0
invokevirtual java.lang.Object.notifyAll:()V
15: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.daemon:Z
ifeq 18
aload 0
getfield java.lang.ThreadGroup.nthreads:I
ifne 18
16: aload 0
getfield java.lang.ThreadGroup.nUnstartedThreads:I
ifne 18
aload 0
getfield java.lang.ThreadGroup.ngroups:I
ifne 18
17: aload 0
invokevirtual java.lang.ThreadGroup.destroy:()V
18: StackMap locals:
StackMap stack:
aload 2
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 2
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/lang/ThreadGroup;
0 23 1 g Ljava/lang/ThreadGroup;
5 13 3 i I
Exception table:
from to target type
1 3 20 any
4 19 20 any
20 21 20 any
MethodParameters:
Name Flags
g
void addUnstarted();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 3
2: new java.lang.IllegalThreadStateException
dup
invokespecial java.lang.IllegalThreadStateException.<init>:()V
athrow
3: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 0
dup
getfield java.lang.ThreadGroup.nUnstartedThreads:I
iconst_1
iadd
putfield java.lang.ThreadGroup.nUnstartedThreads:I
4: aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ThreadGroup;
Exception table:
from to target type
1 5 6 any
6 7 6 any
void add(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 3
2: new java.lang.IllegalThreadStateException
dup
invokespecial java.lang.IllegalThreadStateException.<init>:()V
athrow
3: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
ifnonnull 6
4: aload 0
iconst_4
anewarray java.lang.Thread
putfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
5: goto 8
StackMap locals:
StackMap stack:
6: aload 0
getfield java.lang.ThreadGroup.nthreads:I
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
arraylength
if_icmpne 8
7: aload 0
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
aload 0
getfield java.lang.ThreadGroup.nthreads:I
iconst_2
imul
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.Thread[]
putfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
8: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
aload 0
getfield java.lang.ThreadGroup.nthreads:I
aload 1
aastore
9: aload 0
dup
getfield java.lang.ThreadGroup.nthreads:I
iconst_1
iadd
putfield java.lang.ThreadGroup.nthreads:I
10: aload 0
dup
getfield java.lang.ThreadGroup.nUnstartedThreads:I
iconst_1
isub
putfield java.lang.ThreadGroup.nUnstartedThreads:I
11: aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/ThreadGroup;
0 16 1 t Ljava/lang/Thread;
Exception table:
from to target type
1 12 13 any
13 14 13 any
MethodParameters:
Name Flags
t
void threadStartFailed(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual java.lang.ThreadGroup.remove:(Ljava/lang/Thread;)V
2: aload 0
dup
getfield java.lang.ThreadGroup.nUnstartedThreads:I
iconst_1
iadd
putfield java.lang.ThreadGroup.nUnstartedThreads:I
3: aload 2
monitorexit
4: goto 7
StackMap locals: java.lang.ThreadGroup java.lang.Thread java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/ThreadGroup;
0 8 1 t Ljava/lang/Thread;
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
t
void threadTerminated(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual java.lang.ThreadGroup.remove:(Ljava/lang/Thread;)V
2: aload 0
getfield java.lang.ThreadGroup.nthreads:I
ifne 4
3: aload 0
invokevirtual java.lang.Object.notifyAll:()V
4: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.daemon:Z
ifeq 7
aload 0
getfield java.lang.ThreadGroup.nthreads:I
ifne 7
5: aload 0
getfield java.lang.ThreadGroup.nUnstartedThreads:I
ifne 7
aload 0
getfield java.lang.ThreadGroup.ngroups:I
ifne 7
6: aload 0
invokevirtual java.lang.ThreadGroup.destroy:()V
7: StackMap locals:
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/lang/ThreadGroup;
0 12 1 t Ljava/lang/Thread;
Exception table:
from to target type
1 8 9 any
9 10 9 any
MethodParameters:
Name Flags
t
private void remove(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ThreadGroup.destroyed:Z
ifeq 4
2: aload 2
monitorexit
3: return
4: StackMap locals: java.lang.ThreadGroup
StackMap stack:
iconst_0
istore 3
start local 3 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 3
aaload
aload 1
if_acmpne 10
7: aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 3
iconst_1
iadd
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 3
aload 0
dup
getfield java.lang.ThreadGroup.nthreads:I
iconst_1
isub
dup_x1
putfield java.lang.ThreadGroup.nthreads:I
iload 3
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
aload 0
getfield java.lang.ThreadGroup.nthreads:I
aconst_null
aastore
9: goto 12
10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 0
getfield java.lang.ThreadGroup.nthreads:I
if_icmplt 6
end local 3 12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/lang/ThreadGroup;
0 17 1 t Ljava/lang/Thread;
5 12 3 i I
Exception table:
from to target type
1 3 14 any
4 13 14 any
14 15 14 any
MethodParameters:
Name Flags
t
public void list();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.System.out:Ljava/io/PrintStream;
iconst_0
invokevirtual java.lang.ThreadGroup.list:(Ljava/io/PrintStream;I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ThreadGroup;
void list(java.io.PrintStream, int);
descriptor: (Ljava/io/PrintStream;I)V
flags: (0x0000)
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 5
monitorenter
1: iconst_0
istore 6
start local 6 2: goto 5
3: StackMap locals: java.lang.ThreadGroup java.io.PrintStream int top top java.lang.ThreadGroup int
StackMap stack:
aload 1
ldc " "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
4: iinc 6 1
StackMap locals:
StackMap stack:
5: iload 6
iload 2
if_icmplt 3
end local 6 6: aload 1
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
7: iinc 2 4
8: iconst_0
istore 6
start local 6 9: goto 17
10: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 1
ldc " "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
13: iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iload 2
if_icmplt 12
end local 7 15: aload 1
aload 0
getfield java.lang.ThreadGroup.threads:[Ljava/lang/Thread;
iload 6
aaload
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
aload 0
getfield java.lang.ThreadGroup.nthreads:I
if_icmplt 10
end local 6 18: aload 0
getfield java.lang.ThreadGroup.ngroups:I
istore 3
start local 3 19: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
ifnull 22
20: aload 0
getfield java.lang.ThreadGroup.groups:[Ljava/lang/ThreadGroup;
iload 3
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.lang.ThreadGroup[]
astore 4
start local 4 21: goto 23
end local 4 22: StackMap locals: java.lang.ThreadGroup java.io.PrintStream int int top java.lang.ThreadGroup
StackMap stack:
aconst_null
astore 4
start local 4 23: StackMap locals: java.lang.ThreadGroup java.io.PrintStream int int java.lang.ThreadGroup[] java.lang.ThreadGroup
StackMap stack:
aload 5
monitorexit
24: goto 27
end local 4 end local 3 StackMap locals: java.lang.ThreadGroup java.io.PrintStream int top top java.lang.ThreadGroup
StackMap stack: java.lang.Throwable
25: aload 5
monitorexit
26: athrow
start local 3 start local 4 27: StackMap locals: java.lang.ThreadGroup java.io.PrintStream int int java.lang.ThreadGroup[]
StackMap stack:
iconst_0
istore 5
start local 5 28: goto 31
29: StackMap locals: int
StackMap stack:
aload 4
iload 5
aaload
aload 1
iload 2
invokevirtual java.lang.ThreadGroup.list:(Ljava/io/PrintStream;I)V
30: iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
iload 3
if_icmplt 29
end local 5 32: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljava/lang/ThreadGroup;
0 33 1 out Ljava/io/PrintStream;
0 33 2 indent I
19 25 3 ngroupsSnapshot I
27 33 3 ngroupsSnapshot I
21 22 4 groupsSnapshot [Ljava/lang/ThreadGroup;
23 25 4 groupsSnapshot [Ljava/lang/ThreadGroup;
27 33 4 groupsSnapshot [Ljava/lang/ThreadGroup;
2 6 6 j I
9 18 6 i I
11 15 7 j I
28 32 5 i I
Exception table:
from to target type
1 24 25 any
25 26 25 any
MethodParameters:
Name Flags
out
indent
public void uncaughtException(java.lang.Thread, java.lang.Throwable);
descriptor: (Ljava/lang/Thread;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
ifnull 3
1: aload 0
getfield java.lang.ThreadGroup.parent:Ljava/lang/ThreadGroup;
aload 1
aload 2
invokevirtual java.lang.ThreadGroup.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V
2: goto 13
3: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.getDefaultUncaughtExceptionHandler:()Ljava/lang/Thread$UncaughtExceptionHandler;
4: astore 3
start local 3 5: aload 3
ifnull 8
6: aload 3
aload 1
aload 2
invokeinterface java.lang.Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V
7: goto 13
StackMap locals: java.lang.Thread$UncaughtExceptionHandler
StackMap stack:
8: aload 2
instanceof java.lang.ThreadDeath
ifne 13
9: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Exception in thread \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 1
invokevirtual java.lang.Thread.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;
11: invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
12: aload 2
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
end local 3 13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/ThreadGroup;
0 14 1 t Ljava/lang/Thread;
0 14 2 e Ljava/lang/Throwable;
5 13 3 ueh Ljava/lang/Thread$UncaughtExceptionHandler;
MethodParameters:
Name Flags
t
e
public boolean allowThreadSuspension(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
0 1 1 b Z
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "1.2")
MethodParameters:
Name Flags
b
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "[name="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ",maxpri="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.lang.ThreadGroup.maxPriority:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ThreadGroup;
}
SourceFile: "ThreadGroup.java"
InnerClasses:
public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread