public class com.sun.tools.example.debug.gui.ThreadTreeTool extends javax.swing.JPanel
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.example.debug.gui.ThreadTreeTool
super_class: javax.swing.JPanel
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4168599992853038878
private com.sun.tools.example.debug.gui.Environment env;
descriptor: Lcom/sun/tools/example/debug/gui/Environment;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.bdi.ExecutionManager runtime;
descriptor: Lcom/sun/tools/example/debug/bdi/ExecutionManager;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.gui.SourceManager sourceManager;
descriptor: Lcom/sun/tools/example/debug/gui/SourceManager;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.gui.ClassManager classManager;
descriptor: Lcom/sun/tools/example/debug/gui/ClassManager;
flags: (0x0002) ACC_PRIVATE
private javax.swing.JTree tree;
descriptor: Ljavax/swing/JTree;
flags: (0x0002) ACC_PRIVATE
private javax.swing.tree.DefaultTreeModel treeModel;
descriptor: Ljavax/swing/tree/DefaultTreeModel;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode root;
descriptor: Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeNode;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.gui.SearchPath sourcePath;
descriptor: Lcom/sun/tools/example/debug/gui/SearchPath;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.example.debug.gui.CommandInterpreter interpreter;
descriptor: Lcom/sun/tools/example/debug/gui/CommandInterpreter;
flags: (0x0002) ACC_PRIVATE
private static java.lang.String HEADING;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
java.util.HashMap<com.sun.jdi.ThreadReference, java.util.List<java.lang.String>> threadTable;
descriptor: Ljava/util/HashMap;
flags: (0x0000)
Signature: Ljava/util/HashMap<Lcom/sun/jdi/ThreadReference;Ljava/util/List<Ljava/lang/String;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "THREADS"
putstatic com.sun.tools.example.debug.gui.ThreadTreeTool.HEADING:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.sun.tools.example.debug.gui.Environment);
descriptor: (Lcom/sun/tools/example/debug/gui/Environment;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
new java.awt.BorderLayout
dup
invokespecial java.awt.BorderLayout.<init>:()V
invokespecial javax.swing.JPanel.<init>:(Ljava/awt/LayoutManager;)V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.threadTable:Ljava/util/HashMap;
2: aload 0
aload 1
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.env:Lcom/sun/tools/example/debug/gui/Environment;
3: aload 0
aload 1
invokevirtual com.sun.tools.example.debug.gui.Environment.getExecutionManager:()Lcom/sun/tools/example/debug/bdi/ExecutionManager;
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
4: aload 0
aload 1
invokevirtual com.sun.tools.example.debug.gui.Environment.getSourceManager:()Lcom/sun/tools/example/debug/gui/SourceManager;
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.sourceManager:Lcom/sun/tools/example/debug/gui/SourceManager;
5: aload 0
new com.sun.tools.example.debug.gui.CommandInterpreter
dup
aload 1
invokespecial com.sun.tools.example.debug.gui.CommandInterpreter.<init>:(Lcom/sun/tools/example/debug/gui/Environment;)V
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.interpreter:Lcom/sun/tools/example/debug/gui/CommandInterpreter;
6: aload 0
aload 0
getstatic com.sun.tools.example.debug.gui.ThreadTreeTool.HEADING:Ljava/lang/String;
invokevirtual com.sun.tools.example.debug.gui.ThreadTreeTool.createThreadTree:(Ljava/lang/String;)Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeNode;
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.root:Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeNode;
7: aload 0
new javax.swing.tree.DefaultTreeModel
dup
aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.root:Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeNode;
invokespecial javax.swing.tree.DefaultTreeModel.<init>:(Ljavax/swing/tree/TreeNode;)V
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.treeModel:Ljavax/swing/tree/DefaultTreeModel;
8: aload 0
new javax.swing.JTree
dup
aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.treeModel:Ljavax/swing/tree/DefaultTreeModel;
invokespecial javax.swing.JTree.<init>:(Ljavax/swing/tree/TreeModel;)V
putfield com.sun.tools.example.debug.gui.ThreadTreeTool.tree:Ljavax/swing/JTree;
9: aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.tree:Ljavax/swing/JTree;
new com.sun.tools.example.debug.gui.SingleLeafTreeSelectionModel
dup
invokespecial com.sun.tools.example.debug.gui.SingleLeafTreeSelectionModel.<init>:()V
invokevirtual javax.swing.JTree.setSelectionModel:(Ljavax/swing/tree/TreeSelectionModel;)V
10: new com.sun.tools.example.debug.gui.ThreadTreeTool$1
dup
aload 0
invokespecial com.sun.tools.example.debug.gui.ThreadTreeTool$1.<init>:(Lcom/sun/tools/example/debug/gui/ThreadTreeTool;)V
astore 2
start local 2 11: aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.tree:Ljavax/swing/JTree;
aload 2
invokevirtual javax.swing.JTree.addMouseListener:(Ljava/awt/event/MouseListener;)V
12: new javax.swing.JScrollPane
dup
aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.tree:Ljavax/swing/JTree;
invokespecial javax.swing.JScrollPane.<init>:(Ljava/awt/Component;)V
astore 3
start local 3 13: aload 0
aload 3
invokevirtual com.sun.tools.example.debug.gui.ThreadTreeTool.add:(Ljava/awt/Component;)Ljava/awt/Component;
pop
14: new com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeToolListener
dup
aload 0
invokespecial com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeToolListener.<init>:(Lcom/sun/tools/example/debug/gui/ThreadTreeTool;)V
astore 4
start local 4 15: aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
aload 4
invokevirtual com.sun.tools.example.debug.bdi.ExecutionManager.addJDIListener:(Lcom/sun/tools/example/debug/event/JDIListener;)V
16: aload 0
getfield com.sun.tools.example.debug.gui.ThreadTreeTool.runtime:Lcom/sun/tools/example/debug/bdi/ExecutionManager;
aload 4
invokevirtual com.sun.tools.example.debug.bdi.ExecutionManager.addSessionListener:(Lcom/sun/tools/example/debug/bdi/SessionListener;)V
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/tools/example/debug/gui/ThreadTreeTool;
0 18 1 env Lcom/sun/tools/example/debug/gui/Environment;
11 18 2 ml Ljava/awt/event/MouseListener;
13 18 3 treeView Ljavax/swing/JScrollPane;
15 18 4 listener Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeToolListener;
MethodParameters:
Name Flags
env
private java.util.List<java.lang.String> threadPath(com.sun.jdi.ThreadReference);
descriptor: (Lcom/sun/jdi/ThreadReference;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 2
iconst_0
aload 1
invokeinterface com.sun.jdi.ThreadReference.name:()Ljava/lang/String;
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
2: aload 1
invokeinterface com.sun.jdi.ThreadReference.threadGroup:()Lcom/sun/jdi/ThreadGroupReference;
astore 3
start local 3 3: goto 6
4: StackMap locals: java.util.List com.sun.jdi.ThreadGroupReference
StackMap stack:
aload 2
iconst_0
aload 3
invokeinterface com.sun.jdi.ThreadGroupReference.name:()Ljava/lang/String;
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
5: aload 3
invokeinterface com.sun.jdi.ThreadGroupReference.parent:()Lcom/sun/jdi/ThreadGroupReference;
astore 3
6: StackMap locals:
StackMap stack:
aload 3
ifnonnull 4
7: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/example/debug/gui/ThreadTreeTool;
0 8 1 thread Lcom/sun/jdi/ThreadReference;
1 8 2 l Ljava/util/List<Ljava/lang/String;>;
3 8 3 group Lcom/sun/jdi/ThreadGroupReference;
Signature: (Lcom/sun/jdi/ThreadReference;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
thread
com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode createThreadTree(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/sun/tools/example/debug/gui/ThreadTreeTool$ThreadTreeNode;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode
dup
aload 0
aload 1
aconst_null
invokespecial com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode.<init>:(Lcom/sun/tools/example/debug/gui/ThreadTreeTool;Ljava/lang/String;Lcom/sun/jdi/ThreadReference;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/example/debug/gui/ThreadTreeTool;
0 1 1 label Ljava/lang/String;
MethodParameters:
Name Flags
label
}
SourceFile: "ThreadTreeTool.java"
NestMembers:
com.sun.tools.example.debug.gui.ThreadTreeTool$1 com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeToolListener
InnerClasses:
com.sun.tools.example.debug.gui.ThreadTreeTool$1
ThreadTreeNode = com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeNode of com.sun.tools.example.debug.gui.ThreadTreeTool
private ThreadTreeToolListener = com.sun.tools.example.debug.gui.ThreadTreeTool$ThreadTreeToolListener of com.sun.tools.example.debug.gui.ThreadTreeTool