public class org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper implements org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HeapDumper
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper
super_class: java.lang.Object
{
private java.lang.Object diagnosticMXBean;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.reflect.Method dumpHeapMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=2, args_size=1
start local 0 // org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper this
0: .line 153
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 156
ldc "com.sun.management.HotSpotDiagnosticMXBean"
aconst_null
invokestatic org.springframework.util.ClassUtils.resolveClassName:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
2: .line 155
astore 1 /* diagnosticMXBeanClass */
start local 1 // java.lang.Class diagnosticMXBeanClass
3: .line 157
aload 0 /* this */
4: .line 158
aload 1 /* diagnosticMXBeanClass */
invokestatic java.lang.management.ManagementFactory.getPlatformMXBean:(Ljava/lang/Class;)Ljava/lang/management/PlatformManagedObject;
5: .line 157
putfield org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper.diagnosticMXBean:Ljava/lang/Object;
6: .line 159
aload 0 /* this */
aload 1 /* diagnosticMXBeanClass */
ldc "dumpHeap"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
dup
iconst_1
7: .line 160
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
8: .line 159
invokestatic org.springframework.util.ReflectionUtils.findMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper.dumpHeapMethod:Ljava/lang/reflect/Method;
end local 1 // java.lang.Class diagnosticMXBeanClass
9: .line 161
goto 12
10: .line 162
StackMap locals: org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper
StackMap stack: java.lang.Throwable
astore 1 /* ex */
start local 1 // java.lang.Throwable ex
11: .line 163
new org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HeapDumperUnavailableException
dup
ldc "Unable to locate HotSpotDiagnosticMXBean"
aload 1 /* ex */
invokespecial org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HeapDumperUnavailableException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 // java.lang.Throwable ex
12: .line 165
StackMap locals:
StackMap stack:
return
end local 0 // org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/springframework/boot/actuate/management/HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper;
3 9 1 diagnosticMXBeanClass Ljava/lang/Class<*>;
11 12 1 ex Ljava/lang/Throwable;
Exception table:
from to target type
1 9 10 Class java.lang.Throwable
public void dumpHeap(java.io.File, boolean);
descriptor: (Ljava/io/File;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 // org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper this
start local 1 // java.io.File file
start local 2 // boolean live
0: .line 169
aload 0 /* this */
getfield org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper.dumpHeapMethod:Ljava/lang/reflect/Method;
aload 0 /* this */
getfield org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper.diagnosticMXBean:Ljava/lang/Object;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1 /* file */
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
dup
iconst_1
iload 2 /* live */
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
1: .line 170
return
end local 2 // boolean live
end local 1 // java.io.File file
end local 0 // org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/boot/actuate/management/HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper;
0 2 1 file Ljava/io/File;
0 2 2 live Z
MethodParameters:
Name Flags
file
live
}
SourceFile: "HeapDumpWebEndpoint.java"
NestHost: org.springframework.boot.actuate.management.HeapDumpWebEndpoint
InnerClasses:
protected abstract HeapDumper = org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HeapDumper of org.springframework.boot.actuate.management.HeapDumpWebEndpoint
protected HeapDumperUnavailableException = org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HeapDumperUnavailableException of org.springframework.boot.actuate.management.HeapDumpWebEndpoint
protected HotSpotDiagnosticMXBeanHeapDumper = org.springframework.boot.actuate.management.HeapDumpWebEndpoint$HotSpotDiagnosticMXBeanHeapDumper of org.springframework.boot.actuate.management.HeapDumpWebEndpoint