class freemarker.debug.impl.RmiDebuggerService extends freemarker.debug.impl.DebuggerService
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: freemarker.debug.impl.RmiDebuggerService
super_class: freemarker.debug.impl.DebuggerService
{
private final java.util.Map templateDebugInfos;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.HashSet suspendedEnvironments;
descriptor: Ljava/util/HashSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map listeners;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ref.ReferenceQueue refQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final freemarker.debug.impl.RmiDebuggerImpl debugger;
descriptor: Lfreemarker/debug/impl/RmiDebuggerImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private freemarker.debug.impl.DebuggerServer server;
descriptor: Lfreemarker/debug/impl/DebuggerServer;
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokespecial freemarker.debug.impl.DebuggerService.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
2: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield freemarker.debug.impl.RmiDebuggerService.suspendedEnvironments:Ljava/util/HashSet;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield freemarker.debug.impl.RmiDebuggerService.listeners:Ljava/util/Map;
4: aload 0
new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putfield freemarker.debug.impl.RmiDebuggerService.refQueue:Ljava/lang/ref/ReferenceQueue;
5: aload 0
new freemarker.debug.impl.RmiDebuggerImpl
dup
aload 0
invokespecial freemarker.debug.impl.RmiDebuggerImpl.<init>:(Lfreemarker/debug/impl/RmiDebuggerService;)V
putfield freemarker.debug.impl.RmiDebuggerService.debugger:Lfreemarker/debug/impl/RmiDebuggerImpl;
6: aload 0
new freemarker.debug.impl.DebuggerServer
dup
aload 0
getfield freemarker.debug.impl.RmiDebuggerService.debugger:Lfreemarker/debug/impl/RmiDebuggerImpl;
invokestatic java.rmi.server.RemoteObject.toStub:(Ljava/rmi/Remote;)Ljava/rmi/Remote;
checkcast java.io.Serializable
invokespecial freemarker.debug.impl.DebuggerServer.<init>:(Ljava/io/Serializable;)V
putfield freemarker.debug.impl.RmiDebuggerService.server:Lfreemarker/debug/impl/DebuggerServer;
7: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.server:Lfreemarker/debug/impl/DebuggerServer;
invokevirtual freemarker.debug.impl.DebuggerServer.start:()V
8: goto 12
StackMap locals: freemarker.debug.impl.RmiDebuggerService
StackMap stack: java.rmi.RemoteException
9: astore 1
start local 1 10: aload 1
invokevirtual java.rmi.RemoteException.printStackTrace:()V
11: new freemarker.template.utility.UndeclaredThrowableException
dup
aload 1
invokespecial freemarker.template.utility.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/debug/impl/RmiDebuggerService;
10 12 1 e Ljava/rmi/RemoteException;
Exception table:
from to target type
5 8 9 Class java.rmi.RemoteException
java.util.List getBreakpointsSpi(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual freemarker.debug.impl.RmiDebuggerService.findTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 3
start local 3 2: aload 3
ifnonnull 3
getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
goto 4
StackMap locals: java.util.Map freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
StackMap stack:
3: aload 3
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
4: aload 2
monitorexit
5: areturn
end local 3 6: StackMap locals: freemarker.debug.impl.RmiDebuggerService java.lang.String java.util.Map
StackMap stack: java.lang.Throwable
aload 2
monitorexit
7: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 8 1 templateName Ljava/lang/String;
2 6 3 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
templateName
java.util.List getBreakpointsSpi();
descriptor: ()Ljava/util/List;
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 2
monitorenter
2: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
start local 3 3: goto 5
4: StackMap locals: java.util.List java.util.Map java.util.Iterator
StackMap stack:
aload 1
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 3 6: aload 2
monitorexit
7: goto 10
StackMap locals: freemarker.debug.impl.RmiDebuggerService java.util.List java.util.Map
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 1
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
11: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lfreemarker/debug/impl/RmiDebuggerService;
1 12 1 sumlist Ljava/util/List;
3 6 3 iter Ljava/util/Iterator;
Exception table:
from to target type
2 7 8 any
8 9 8 any
boolean suspendEnvironmentSpi(freemarker.core.Environment, java.lang.String, int);
descriptor: (Lfreemarker/core/Environment;Ljava/lang/String;I)Z
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tSuppressFBWarnings cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/debug/impl/RmiDebuggerService;
Exceptions:
throws java.rmi.RemoteException
RuntimeInvisibleAnnotations:
SuppressFBWarnings()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
SuppressFBWarnings()
MethodParameters:
Name Flags
env
templateName
line
void registerTemplateSpi(freemarker.template.Template);
descriptor: (Lfreemarker/template/Template;)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual freemarker.template.Template.getName:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 3
monitorenter
2: aload 0
aload 2
invokevirtual freemarker.debug.impl.RmiDebuggerService.createTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 4
start local 4 3: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.templates:Ljava/util/List;
new freemarker.debug.impl.RmiDebuggerService$TemplateReference
dup
aload 2
aload 1
aload 0
getfield freemarker.debug.impl.RmiDebuggerService.refQueue:Ljava/lang/ref/ReferenceQueue;
invokespecial freemarker.debug.impl.RmiDebuggerService$TemplateReference.<init>:(Ljava/lang/String;Lfreemarker/template/Template;Ljava/lang/ref/ReferenceQueue;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 5: goto 8
6: StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.template.Template java.lang.String java.util.Map freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.Breakpoint
astore 6
start local 6 7: aload 1
aload 6
invokestatic freemarker.debug.impl.RmiDebuggerService.insertDebugBreak:(Lfreemarker/template/Template;Lfreemarker/debug/Breakpoint;)V
end local 6 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 5 end local 4 9: aload 3
monitorexit
10: goto 13
StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.template.Template java.lang.String java.util.Map
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
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 Lfreemarker/debug/impl/RmiDebuggerService;
0 14 1 template Lfreemarker/template/Template;
1 14 2 templateName Ljava/lang/String;
3 9 4 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
5 9 5 iter Ljava/util/Iterator;
7 8 6 breakpoint Lfreemarker/debug/Breakpoint;
Exception table:
from to target type
2 10 11 any
11 12 11 any
MethodParameters:
Name Flags
template
java.util.Collection getSuspendedEnvironments();
descriptor: ()Ljava/util/Collection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.suspendedEnvironments:Ljava/util/HashSet;
invokevirtual java.util.HashSet.clone:()Ljava/lang/Object;
checkcast java.util.Collection
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lfreemarker/debug/impl/RmiDebuggerService;
java.lang.Object addDebuggerListener(freemarker.debug.DebuggerListener);
descriptor: (Lfreemarker/debug/DebuggerListener;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.listeners:Ljava/util/Map;
dup
astore 3
monitorenter
1: invokestatic java.lang.System.currentTimeMillis:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 2
start local 2 2: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.listeners:Ljava/util/Map;
aload 2
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 3
monitorexit
4: goto 7
end local 2 StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.debug.DebuggerListener top java.util.Map
StackMap stack: java.lang.Throwable
5: aload 3
monitorexit
6: athrow
start local 2 7: StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.debug.DebuggerListener java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 8 1 listener Lfreemarker/debug/DebuggerListener;
2 5 2 id Ljava/lang/Object;
7 8 2 id Ljava/lang/Object;
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
listener
void removeDebuggerListener(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.listeners:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.listeners:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: freemarker.debug.impl.RmiDebuggerService java.lang.Object java.util.Map
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 7 1 id Ljava/lang/Object;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
id
void addBreakpoint(freemarker.debug.Breakpoint);
descriptor: (Lfreemarker/debug/Breakpoint;)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual freemarker.debug.Breakpoint.getTemplateName:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 3
monitorenter
2: aload 0
aload 2
invokevirtual freemarker.debug.impl.RmiDebuggerService.createTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 4
start local 4 3: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
astore 5
start local 5 4: aload 5
aload 1
invokestatic java.util.Collections.binarySearch:(Ljava/util/List;Ljava/lang/Object;)I
istore 6
start local 6 5: iload 6
ifge 16
6: aload 5
iload 6
ineg
iconst_1
isub
aload 1
invokeinterface java.util.List.add:(ILjava/lang/Object;)V
7: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.templates:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
start local 7 8: goto 15
9: StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.debug.Breakpoint java.lang.String java.util.Map freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo java.util.List int java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateReference
astore 8
start local 8 10: aload 8
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateReference.getTemplate:()Lfreemarker/template/Template;
astore 9
start local 9 11: aload 9
ifnonnull 14
12: aload 7
invokeinterface java.util.Iterator.remove:()V
13: goto 15
14: StackMap locals: freemarker.debug.impl.RmiDebuggerService$TemplateReference freemarker.template.Template
StackMap stack:
aload 9
aload 1
invokestatic freemarker.debug.impl.RmiDebuggerService.insertDebugBreak:(Lfreemarker/template/Template;Lfreemarker/debug/Breakpoint;)V
end local 9 end local 8 15: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 7 end local 6 end local 5 end local 4 16: StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.debug.Breakpoint java.lang.String java.util.Map
StackMap stack:
aload 3
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 3
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 21 1 breakpoint Lfreemarker/debug/Breakpoint;
1 21 2 templateName Ljava/lang/String;
3 16 4 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
4 16 5 breakpoints Ljava/util/List;
5 16 6 pos I
8 16 7 iter Ljava/util/Iterator;
10 15 8 ref Lfreemarker/debug/impl/RmiDebuggerService$TemplateReference;
11 15 9 t Lfreemarker/template/Template;
Exception table:
from to target type
2 17 18 any
18 19 18 any
MethodParameters:
Name Flags
breakpoint
private static void insertDebugBreak(freemarker.template.Template, freemarker.debug.Breakpoint);
descriptor: (Lfreemarker/template/Template;Lfreemarker/debug/Breakpoint;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
aload 1
invokevirtual freemarker.debug.Breakpoint.getLine:()I
invokestatic freemarker.debug.impl.RmiDebuggerService.findTemplateElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: freemarker.core.TemplateElement
StackMap stack:
aload 2
invokestatic freemarker.core._CoreAPI.getParentElement:(Lfreemarker/core/TemplateElement;)Lfreemarker/core/TemplateElement;
astore 3
start local 3 4: new freemarker.core.DebugBreak
dup
aload 2
invokespecial freemarker.core.DebugBreak.<init>:(Lfreemarker/core/TemplateElement;)V
astore 4
start local 4 5: aload 3
aload 3
aload 2
invokevirtual freemarker.core.TemplateElement.getIndex:(Ljavax/swing/tree/TreeNode;)I
aload 4
invokevirtual freemarker.core.TemplateElement.setChildAt:(ILfreemarker/core/TemplateElement;)V
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 t Lfreemarker/template/Template;
0 7 1 breakpoint Lfreemarker/debug/Breakpoint;
1 7 2 te Lfreemarker/core/TemplateElement;
4 7 3 parent Lfreemarker/core/TemplateElement;
5 7 4 db Lfreemarker/core/DebugBreak;
MethodParameters:
Name Flags
t
breakpoint
private static freemarker.core.TemplateElement findTemplateElement(freemarker.core.TemplateElement, int);
descriptor: (Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual freemarker.core.TemplateElement.getBeginLine:()I
iload 1
if_icmpgt 1
aload 0
invokevirtual freemarker.core.TemplateElement.getEndLine:()I
iload 1
if_icmpge 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: aload 0
invokevirtual freemarker.core.TemplateElement.children:()Ljava/util/Enumeration;
astore 3
start local 3 4: goto 9
5: StackMap locals: java.util.List java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast freemarker.core.TemplateElement
astore 4
start local 4 6: aload 4
iload 1
invokestatic freemarker.debug.impl.RmiDebuggerService.findTemplateElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
astore 5
start local 5 7: aload 5
ifnull 9
8: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 5
end local 3 10: aconst_null
astore 3
start local 3 11: iconst_0
istore 4
start local 4 12: goto 22
13: StackMap locals: freemarker.core.TemplateElement int java.util.List freemarker.core.TemplateElement int
StackMap stack:
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast freemarker.core.TemplateElement
astore 5
start local 5 14: aload 3
ifnonnull 16
15: aload 5
astore 3
16: StackMap locals: freemarker.core.TemplateElement
StackMap stack:
aload 5
invokevirtual freemarker.core.TemplateElement.getBeginLine:()I
iload 1
if_icmpne 18
aload 5
invokevirtual freemarker.core.TemplateElement.getEndLine:()I
iload 1
if_icmple 18
17: aload 5
astore 3
18: StackMap locals:
StackMap stack:
aload 5
invokevirtual freemarker.core.TemplateElement.getBeginLine:()I
aload 5
invokevirtual freemarker.core.TemplateElement.getEndLine:()I
if_icmpne 21
aload 5
invokevirtual freemarker.core.TemplateElement.getBeginLine:()I
iload 1
if_icmpne 21
19: aload 5
astore 3
20: goto 23
end local 5 21: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
22: iload 4
aload 2
invokeinterface java.util.List.size:()I
if_icmplt 13
end local 4 23: StackMap locals:
StackMap stack:
aload 3
ifnull 25
24: aload 3
areturn
25: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 te Lfreemarker/core/TemplateElement;
0 26 1 line I
3 26 2 childMatches Ljava/util/List;
4 10 3 children Ljava/util/Enumeration;
6 9 4 child Lfreemarker/core/TemplateElement;
7 9 5 childmatch Lfreemarker/core/TemplateElement;
11 26 3 bestMatch Lfreemarker/core/TemplateElement;
12 23 4 i I
14 21 5 e Lfreemarker/core/TemplateElement;
MethodParameters:
Name Flags
te
line
private freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo findTemplateDebugInfo(java.lang.String);
descriptor: (Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual freemarker.debug.impl.RmiDebuggerService.processRefQueue:()V
1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 2 1 templateName Ljava/lang/String;
MethodParameters:
Name Flags
templateName
private freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo createTemplateDebugInfo(java.lang.String);
descriptor: (Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual freemarker.debug.impl.RmiDebuggerService.findTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 2
start local 2 1: aload 2
ifnonnull 4
2: new freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
dup
invokespecial freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.<init>:()V
astore 2
3: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 5 1 templateName Ljava/lang/String;
1 5 2 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
MethodParameters:
Name Flags
templateName
void removeBreakpoint(freemarker.debug.Breakpoint);
descriptor: (Lfreemarker/debug/Breakpoint;)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual freemarker.debug.Breakpoint.getTemplateName:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 3
monitorenter
2: aload 0
aload 2
invokevirtual freemarker.debug.impl.RmiDebuggerService.findTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 4
start local 4 3: aload 4
ifnull 19
4: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
astore 5
start local 5 5: aload 5
aload 1
invokestatic java.util.Collections.binarySearch:(Ljava/util/List;Ljava/lang/Object;)I
istore 6
start local 6 6: iload 6
iflt 17
7: aload 5
iload 6
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
8: aload 4
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.templates:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
start local 7 9: goto 16
10: StackMap locals: freemarker.debug.impl.RmiDebuggerService freemarker.debug.Breakpoint java.lang.String java.util.Map freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo java.util.List int java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateReference
astore 8
start local 8 11: aload 8
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateReference.getTemplate:()Lfreemarker/template/Template;
astore 9
start local 9 12: aload 9
ifnonnull 15
13: aload 7
invokeinterface java.util.Iterator.remove:()V
14: goto 16
15: StackMap locals: freemarker.debug.impl.RmiDebuggerService$TemplateReference freemarker.template.Template
StackMap stack:
aload 0
aload 9
aload 1
invokevirtual freemarker.debug.impl.RmiDebuggerService.removeDebugBreak:(Lfreemarker/template/Template;Lfreemarker/debug/Breakpoint;)V
end local 9 end local 8 16: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 7 17: StackMap locals:
StackMap stack:
aload 4
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.isEmpty:()Z
ifeq 19
18: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 4 19: StackMap locals:
StackMap stack:
aload 3
monitorexit
20: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
21: aload 3
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 24 1 breakpoint Lfreemarker/debug/Breakpoint;
1 24 2 templateName Ljava/lang/String;
3 19 4 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
5 19 5 breakpoints Ljava/util/List;
6 19 6 pos I
9 17 7 iter Ljava/util/Iterator;
11 16 8 ref Lfreemarker/debug/impl/RmiDebuggerService$TemplateReference;
12 16 9 t Lfreemarker/template/Template;
Exception table:
from to target type
2 20 21 any
21 22 21 any
MethodParameters:
Name Flags
breakpoint
private void removeDebugBreak(freemarker.template.Template, freemarker.debug.Breakpoint);
descriptor: (Lfreemarker/template/Template;Lfreemarker/debug/Breakpoint;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
aload 2
invokevirtual freemarker.debug.Breakpoint.getLine:()I
invokestatic freemarker.debug.impl.RmiDebuggerService.findTemplateElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: return
3: StackMap locals: freemarker.core.TemplateElement
StackMap stack:
aconst_null
astore 4
start local 4 4: goto 9
5: StackMap locals: freemarker.core.DebugBreak
StackMap stack:
aload 3
instanceof freemarker.core.DebugBreak
ifeq 8
6: aload 3
checkcast freemarker.core.DebugBreak
astore 4
7: goto 10
8: StackMap locals:
StackMap stack:
aload 3
invokestatic freemarker.core._CoreAPI.getParentElement:(Lfreemarker/core/TemplateElement;)Lfreemarker/core/TemplateElement;
astore 3
9: StackMap locals:
StackMap stack:
aload 3
ifnonnull 5
10: StackMap locals:
StackMap stack:
aload 4
ifnonnull 12
11: return
12: StackMap locals:
StackMap stack:
aload 4
invokestatic freemarker.core._CoreAPI.getParentElement:(Lfreemarker/core/TemplateElement;)Lfreemarker/core/TemplateElement;
astore 5
start local 5 13: aload 5
aload 5
aload 4
invokevirtual freemarker.core.TemplateElement.getIndex:(Ljavax/swing/tree/TreeNode;)I
aload 4
iconst_0
invokestatic freemarker.core._CoreAPI.getChildElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
invokevirtual freemarker.core.TemplateElement.setChildAt:(ILfreemarker/core/TemplateElement;)V
14: 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 15 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 15 1 t Lfreemarker/template/Template;
0 15 2 breakpoint Lfreemarker/debug/Breakpoint;
1 15 3 te Lfreemarker/core/TemplateElement;
4 15 4 db Lfreemarker/core/DebugBreak;
13 15 5 parent Lfreemarker/core/TemplateElement;
MethodParameters:
Name Flags
t
breakpoint
void removeBreakpoints(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual freemarker.debug.impl.RmiDebuggerService.findTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 3
start local 3 2: aload 3
ifnull 6
3: aload 0
aload 3
invokevirtual freemarker.debug.impl.RmiDebuggerService.removeBreakpoints:(Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;)V
4: aload 3
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.isEmpty:()Z
ifeq 6
5: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 6: StackMap locals: java.util.Map
StackMap stack:
aload 2
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 11 1 templateName Ljava/lang/String;
2 6 3 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
Exception table:
from to target type
1 7 8 any
8 9 8 any
MethodParameters:
Name Flags
templateName
void removeBreakpoints();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
dup
astore 1
monitorenter
1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 7
3: StackMap locals: java.util.Map java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo
astore 3
start local 3 4: aload 0
aload 3
invokevirtual freemarker.debug.impl.RmiDebuggerService.removeBreakpoints:(Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;)V
5: aload 3
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.isEmpty:()Z
ifeq 7
6: aload 2
invokeinterface java.util.Iterator.remove:()V
end local 3 7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 8: aload 1
monitorexit
9: goto 12
StackMap locals: freemarker.debug.impl.RmiDebuggerService java.util.Map
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/debug/impl/RmiDebuggerService;
2 8 2 iter Ljava/util/Iterator;
4 7 3 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
Exception table:
from to target type
1 9 10 any
10 11 10 any
private void removeBreakpoints(freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo);
descriptor: (Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.breakpoints:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: aload 1
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.templates:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 9
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateReference
astore 3
start local 3 4: aload 3
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateReference.getTemplate:()Lfreemarker/template/Template;
astore 4
start local 4 5: aload 4
ifnonnull 8
6: aload 2
invokeinterface java.util.Iterator.remove:()V
7: goto 9
8: StackMap locals: freemarker.debug.impl.RmiDebuggerService$TemplateReference freemarker.template.Template
StackMap stack:
aload 0
aload 4
invokevirtual freemarker.template.Template.getRootTreeNode:()Lfreemarker/core/TemplateElement;
invokevirtual freemarker.debug.impl.RmiDebuggerService.removeDebugBreaks:(Lfreemarker/core/TemplateElement;)V
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 11 1 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
2 10 2 iter Ljava/util/Iterator;
4 9 3 ref Lfreemarker/debug/impl/RmiDebuggerService$TemplateReference;
5 9 4 t Lfreemarker/template/Template;
MethodParameters:
Name Flags
tdi
private void removeDebugBreaks(freemarker.core.TemplateElement);
descriptor: (Lfreemarker/core/TemplateElement;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual freemarker.core.TemplateElement.getChildCount:()I
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 11
3: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokestatic freemarker.core._CoreAPI.getChildElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
astore 4
start local 4 4: goto 8
5: StackMap locals: freemarker.core.TemplateElement
StackMap stack:
aload 4
iconst_0
invokestatic freemarker.core._CoreAPI.getChildElement:(Lfreemarker/core/TemplateElement;I)Lfreemarker/core/TemplateElement;
astore 5
start local 5 6: aload 1
iload 3
aload 5
invokevirtual freemarker.core.TemplateElement.setChildAt:(ILfreemarker/core/TemplateElement;)V
7: aload 5
astore 4
end local 5 8: StackMap locals:
StackMap stack:
aload 4
instanceof freemarker.core.DebugBreak
ifne 5
9: aload 0
aload 4
invokevirtual freemarker.debug.impl.RmiDebuggerService.removeDebugBreaks:(Lfreemarker/core/TemplateElement;)V
end local 4 10: iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 2
if_icmplt 3
end local 3 12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lfreemarker/debug/impl/RmiDebuggerService;
0 13 1 te Lfreemarker/core/TemplateElement;
1 13 2 count I
2 12 3 i I
4 10 4 child Lfreemarker/core/TemplateElement;
6 8 5 dbchild Lfreemarker/core/TemplateElement;
MethodParameters:
Name Flags
te
private void processRefQueue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield freemarker.debug.impl.RmiDebuggerService.refQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
checkcast freemarker.debug.impl.RmiDebuggerService$TemplateReference
astore 1
start local 1 1: aload 1
ifnonnull 3
2: goto 9
3: StackMap locals: freemarker.debug.impl.RmiDebuggerService$TemplateReference
StackMap stack:
aload 0
aload 1
getfield freemarker.debug.impl.RmiDebuggerService$TemplateReference.templateName:Ljava/lang/String;
invokevirtual freemarker.debug.impl.RmiDebuggerService.findTemplateDebugInfo:(Ljava/lang/String;)Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
astore 2
start local 2 4: aload 2
ifnull 0
5: aload 2
getfield freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.templates:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
6: aload 2
invokevirtual freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo.isEmpty:()Z
ifeq 0
7: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.templateDebugInfos:Ljava/util/Map;
aload 1
getfield freemarker.debug.impl.RmiDebuggerService$TemplateReference.templateName:Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 end local 1 8: goto 0
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lfreemarker/debug/impl/RmiDebuggerService;
1 8 1 ref Lfreemarker/debug/impl/RmiDebuggerService$TemplateReference;
4 8 2 tdi Lfreemarker/debug/impl/RmiDebuggerService$TemplateDebugInfo;
void shutdownSpi();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.server:Lfreemarker/debug/impl/DebuggerServer;
invokevirtual freemarker.debug.impl.DebuggerServer.stop:()V
1: aload 0
getfield freemarker.debug.impl.RmiDebuggerService.debugger:Lfreemarker/debug/impl/RmiDebuggerImpl;
iconst_1
invokestatic java.rmi.server.UnicastRemoteObject.unexportObject:(Ljava/rmi/Remote;Z)Z
pop
2: goto 4
StackMap locals:
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
invokestatic freemarker.debug.impl.RmiDebuggedEnvironmentImpl.cleanup:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lfreemarker/debug/impl/RmiDebuggerService;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
}
SourceFile: "RmiDebuggerService.java"
NestMembers:
freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo freemarker.debug.impl.RmiDebuggerService$TemplateReference
InnerClasses:
private final TemplateDebugInfo = freemarker.debug.impl.RmiDebuggerService$TemplateDebugInfo of freemarker.debug.impl.RmiDebuggerService
private final TemplateReference = freemarker.debug.impl.RmiDebuggerService$TemplateReference of freemarker.debug.impl.RmiDebuggerService