class sun.management.GarbageCollectorImpl extends sun.management.MemoryManagerImpl implements com.sun.management.GarbageCollectorMXBean
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.management.GarbageCollectorImpl
super_class: sun.management.MemoryManagerImpl
{
private java.lang.String[] poolNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private sun.management.GcInfoBuilder gcInfoBuilder;
descriptor: Lsun/management/GcInfoBuilder;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.String notifName;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "javax.management.Notification"
private static final java.lang.String[] gcNotifTypes;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static long seqNumber;
descriptor: J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_1
anewarray java.lang.String
dup
iconst_0
1: ldc "com.sun.management.gc.notification"
aastore
2: putstatic sun.management.GarbageCollectorImpl.gcNotifTypes:[Ljava/lang/String;
3: lconst_0
putstatic sun.management.GarbageCollectorImpl.seqNumber:J
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.management.MemoryManagerImpl.<init>:(Ljava/lang/String;)V
1: aload 0
aconst_null
putfield sun.management.GarbageCollectorImpl.poolNames:[Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/management/GarbageCollectorImpl;
0 3 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public native long getCollectionCount();
descriptor: ()J
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
public native long getCollectionTime();
descriptor: ()J
flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
synchronized java.lang.String[] getAllPoolNames();
descriptor: ()[Ljava/lang/String;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.management.GarbageCollectorImpl.poolNames:[Ljava/lang/String;
ifnonnull 8
1: invokestatic java.lang.management.ManagementFactory.getMemoryPoolMXBeans:()Ljava/util/List;
astore 1
start local 1 2: aload 0
aload 1
invokeinterface java.util.List.size:()I
anewarray java.lang.String
putfield sun.management.GarbageCollectorImpl.poolNames:[Ljava/lang/String;
3: iconst_0
istore 2
start local 2 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: sun.management.GarbageCollectorImpl java.util.List int top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.management.MemoryPoolMXBean
astore 3
start local 3 6: aload 0
getfield sun.management.GarbageCollectorImpl.poolNames:[Ljava/lang/String;
iload 2
iinc 2 1
aload 3
invokeinterface java.lang.management.MemoryPoolMXBean.getName:()Ljava/lang/String;
aastore
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 end local 1 8: StackMap locals: sun.management.GarbageCollectorImpl
StackMap stack:
aload 0
getfield sun.management.GarbageCollectorImpl.poolNames:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/management/GarbageCollectorImpl;
2 8 1 pools Ljava/util/List<Ljava/lang/management/MemoryPoolMXBean;>;
4 8 2 i I
6 7 3 m Ljava/lang/management/MemoryPoolMXBean;
private synchronized sun.management.GcInfoBuilder getGcInfoBuilder();
descriptor: ()Lsun/management/GcInfoBuilder;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.management.GarbageCollectorImpl.gcInfoBuilder:Lsun/management/GcInfoBuilder;
ifnonnull 2
1: aload 0
new sun.management.GcInfoBuilder
dup
aload 0
aload 0
invokevirtual sun.management.GarbageCollectorImpl.getAllPoolNames:()[Ljava/lang/String;
invokespecial sun.management.GcInfoBuilder.<init>:(Ljava/lang/management/GarbageCollectorMXBean;[Ljava/lang/String;)V
putfield sun.management.GarbageCollectorImpl.gcInfoBuilder:Lsun/management/GcInfoBuilder;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.management.GarbageCollectorImpl.gcInfoBuilder:Lsun/management/GcInfoBuilder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/management/GarbageCollectorImpl;
public com.sun.management.GcInfo getLastGcInfo();
descriptor: ()Lcom/sun/management/GcInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual sun.management.GarbageCollectorImpl.getGcInfoBuilder:()Lsun/management/GcInfoBuilder;
invokevirtual sun.management.GcInfoBuilder.getLastGcInfo:()Lcom/sun/management/GcInfo;
astore 1
start local 1 1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/management/GarbageCollectorImpl;
1 2 1 info Lcom/sun/management/GcInfo;
public javax.management.MBeanNotificationInfo[] getNotificationInfo();
descriptor: ()[Ljavax/management/MBeanNotificationInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=1, args_size=1
start local 0 0: iconst_1
anewarray javax.management.MBeanNotificationInfo
dup
iconst_0
1: new javax.management.MBeanNotificationInfo
dup
getstatic sun.management.GarbageCollectorImpl.gcNotifTypes:[Ljava/lang/String;
2: ldc "javax.management.Notification"
3: ldc "GC Notification"
4: invokespecial javax.management.MBeanNotificationInfo.<init>:([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
aastore
5: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/management/GarbageCollectorImpl;
private static long getNextSeqNumber();
descriptor: ()J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: getstatic sun.management.GarbageCollectorImpl.seqNumber:J
lconst_1
ladd
dup2
putstatic sun.management.GarbageCollectorImpl.seqNumber:J
lreturn
LocalVariableTable:
Start End Slot Name Signature
void createGCNotification(long, java.lang.String, java.lang.String, java.lang.String, com.sun.management.GcInfo);
descriptor: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/sun/management/GcInfo;)V
flags: (0x0000)
Code:
stack=9, locals=10, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
new javax.management.Notification
dup
ldc "com.sun.management.gc.notification"
3: aload 0
invokevirtual sun.management.GarbageCollectorImpl.getObjectName:()Ljavax/management/ObjectName;
4: invokestatic sun.management.GarbageCollectorImpl.getNextSeqNumber:()J
5: lload 1
6: aload 3
7: invokespecial javax.management.Notification.<init>:(Ljava/lang/String;Ljava/lang/Object;JJLjava/lang/String;)V
astore 7
start local 7 8: new com.sun.management.GarbageCollectionNotificationInfo
dup
aload 3
9: aload 4
10: aload 5
11: aload 6
12: invokespecial com.sun.management.GarbageCollectionNotificationInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/sun/management/GcInfo;)V
13: astore 8
start local 8 14: aload 8
invokestatic sun.management.GarbageCollectionNotifInfoCompositeData.toCompositeData:(Lcom/sun/management/GarbageCollectionNotificationInfo;)Ljavax/management/openmbean/CompositeData;
15: astore 9
start local 9 16: aload 7
aload 9
invokevirtual javax.management.Notification.setUserData:(Ljava/lang/Object;)V
17: aload 0
aload 7
invokevirtual sun.management.GarbageCollectorImpl.sendNotification:(Ljavax/management/Notification;)V
18: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/management/GarbageCollectorImpl;
0 19 1 timestamp J
0 19 3 gcName Ljava/lang/String;
0 19 4 gcAction Ljava/lang/String;
0 19 5 gcCause Ljava/lang/String;
0 19 6 gcInfo Lcom/sun/management/GcInfo;
8 19 7 notif Ljavax/management/Notification;
14 19 8 info Lcom/sun/management/GarbageCollectionNotificationInfo;
16 19 9 cd Ljavax/management/openmbean/CompositeData;
MethodParameters:
Name Flags
timestamp
gcName
gcAction
gcCause
gcInfo
public synchronized void addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object);
descriptor: (Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 4
start local 4 1: aload 0
aload 1
aload 2
aload 3
invokespecial sun.management.MemoryManagerImpl.addNotificationListener:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
2: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 5
start local 5 3: iload 4
ifne 5
iload 5
ifeq 5
4: aload 0
aload 0
iconst_1
invokevirtual sun.management.GarbageCollectorImpl.setNotificationEnabled:(Lcom/sun/management/GarbageCollectorMXBean;Z)V
5: StackMap locals: int int
StackMap stack:
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 6 0 this Lsun/management/GarbageCollectorImpl;
0 6 1 listener Ljavax/management/NotificationListener;
0 6 2 filter Ljavax/management/NotificationFilter;
0 6 3 handback Ljava/lang/Object;
1 6 4 before Z
3 6 5 after Z
MethodParameters:
Name Flags
listener
filter
handback
public synchronized void removeNotificationListener(javax.management.NotificationListener);
descriptor: (Ljavax/management/NotificationListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 2
start local 2 1: aload 0
aload 1
invokespecial sun.management.MemoryManagerImpl.removeNotificationListener:(Ljavax/management/NotificationListener;)V
2: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 3
start local 3 3: iload 2
ifeq 5
iload 3
ifne 5
4: aload 0
aload 0
iconst_0
invokevirtual sun.management.GarbageCollectorImpl.setNotificationEnabled:(Lcom/sun/management/GarbageCollectorMXBean;Z)V
5: StackMap locals: int int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/management/GarbageCollectorImpl;
0 6 1 listener Ljavax/management/NotificationListener;
1 6 2 before Z
3 6 3 after Z
Exceptions:
throws javax.management.ListenerNotFoundException
MethodParameters:
Name Flags
listener
public synchronized void removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object);
descriptor: (Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 4
start local 4 1: aload 0
aload 1
aload 2
aload 3
invokespecial sun.management.MemoryManagerImpl.removeNotificationListener:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
2: aload 0
invokevirtual sun.management.GarbageCollectorImpl.hasListeners:()Z
istore 5
start local 5 3: iload 4
ifeq 5
iload 5
ifne 5
4: aload 0
aload 0
iconst_0
invokevirtual sun.management.GarbageCollectorImpl.setNotificationEnabled:(Lcom/sun/management/GarbageCollectorMXBean;Z)V
5: StackMap locals: int int
StackMap stack:
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 6 0 this Lsun/management/GarbageCollectorImpl;
0 6 1 listener Ljavax/management/NotificationListener;
0 6 2 filter Ljavax/management/NotificationFilter;
0 6 3 handback Ljava/lang/Object;
1 6 4 before Z
3 6 5 after Z
Exceptions:
throws javax.management.ListenerNotFoundException
MethodParameters:
Name Flags
listener
filter
handback
public javax.management.ObjectName getObjectName();
descriptor: ()Ljavax/management/ObjectName;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "java.lang:type=GarbageCollector"
aload 0
invokevirtual sun.management.GarbageCollectorImpl.getName:()Ljava/lang/String;
invokestatic sun.management.Util.newObjectName:(Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/management/GarbageCollectorImpl;
native void setNotificationEnabled(com.sun.management.GarbageCollectorMXBean, boolean);
descriptor: (Lcom/sun/management/GarbageCollectorMXBean;Z)V
flags: (0x0100) ACC_NATIVE
MethodParameters:
Name Flags
gc
enabled
}
SourceFile: "GarbageCollectorImpl.java"