public abstract class com.sun.tools.attach.spi.AttachProvider
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.tools.attach.spi.AttachProvider
super_class: java.lang.Object
{
private static final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.util.List<com.sun.tools.attach.spi.AttachProvider> providers;
descriptor: Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/List<Lcom/sun/tools/attach/spi/AttachProvider;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.sun.tools.attach.spi.AttachProvider.lock:Ljava/lang/Object;
1: aconst_null
putstatic com.sun.tools.attach.spi.AttachProvider.providers:Ljava/util/List;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
new com.sun.tools.attach.AttachPermission
dup
ldc "createAttachProvider"
invokespecial com.sun.tools.attach.AttachPermission.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
4: StackMap locals: com.sun.tools.attach.spi.AttachProvider java.lang.SecurityManager
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/attach/spi/AttachProvider;
2 5 1 sm Ljava/lang/SecurityManager;
public abstract java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.lang.String type();
descriptor: ()Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract com.sun.tools.attach.VirtualMachine attachVirtualMachine(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/sun/tools/attach/VirtualMachine;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws com.sun.tools.attach.AttachNotSupportedException, java.io.IOException
MethodParameters:
Name Flags
id
public com.sun.tools.attach.VirtualMachine attachVirtualMachine(com.sun.tools.attach.VirtualMachineDescriptor);
descriptor: (Lcom/sun/tools/attach/VirtualMachineDescriptor;)Lcom/sun/tools/attach/VirtualMachine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.tools.attach.VirtualMachineDescriptor.provider:()Lcom/sun/tools/attach/spi/AttachProvider;
aload 0
if_acmpeq 2
1: new com.sun.tools.attach.AttachNotSupportedException
dup
ldc "provider mismatch"
invokespecial com.sun.tools.attach.AttachNotSupportedException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.tools.attach.VirtualMachineDescriptor.id:()Ljava/lang/String;
invokevirtual com.sun.tools.attach.spi.AttachProvider.attachVirtualMachine:(Ljava/lang/String;)Lcom/sun/tools/attach/VirtualMachine;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/attach/spi/AttachProvider;
0 3 1 vmd Lcom/sun/tools/attach/VirtualMachineDescriptor;
Exceptions:
throws com.sun.tools.attach.AttachNotSupportedException, java.io.IOException
MethodParameters:
Name Flags
vmd
public abstract java.util.List<com.sun.tools.attach.VirtualMachineDescriptor> listVirtualMachines();
descriptor: ()Ljava/util/List;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()Ljava/util/List<Lcom/sun/tools/attach/VirtualMachineDescriptor;>;
public static java.util.List<com.sun.tools.attach.spi.AttachProvider> providers();
descriptor: ()Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=0
0: getstatic com.sun.tools.attach.spi.AttachProvider.lock:Ljava/lang/Object;
dup
astore 0
monitorenter
1: getstatic com.sun.tools.attach.spi.AttachProvider.providers:Ljava/util/List;
ifnonnull 17
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic com.sun.tools.attach.spi.AttachProvider.providers:Ljava/util/List;
3: ldc Lcom/sun/tools/attach/spi/AttachProvider;
4: ldc Lcom/sun/tools/attach/spi/AttachProvider;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
5: invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
6: astore 1
start local 1 7: aload 1
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 2
start local 2 8: goto 16
9: StackMap locals: java.lang.Object java.util.ServiceLoader java.util.Iterator
StackMap stack:
getstatic com.sun.tools.attach.spi.AttachProvider.providers:Ljava/util/List;
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.attach.spi.AttachProvider
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 3
start local 3 12: aload 3
instanceof java.lang.ThreadDeath
ifeq 15
13: aload 3
checkcast java.lang.ThreadDeath
astore 4
start local 4 14: aload 4
athrow
end local 4 15: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
invokevirtual java.lang.Throwable.printStackTrace:()V
end local 3 16: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 2 end local 1 17: StackMap locals:
StackMap stack:
getstatic com.sun.tools.attach.spi.AttachProvider.providers:Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
aload 0
monitorexit
18: areturn
19: StackMap locals:
StackMap stack: java.lang.Throwable
aload 0
monitorexit
20: athrow
LocalVariableTable:
Start End Slot Name Signature
7 17 1 providerLoader Ljava/util/ServiceLoader<Lcom/sun/tools/attach/spi/AttachProvider;>;
8 17 2 i Ljava/util/Iterator<Lcom/sun/tools/attach/spi/AttachProvider;>;
12 16 3 t Ljava/lang/Throwable;
14 15 4 td Ljava/lang/ThreadDeath;
Exception table:
from to target type
9 10 11 Class java.lang.Throwable
1 18 19 any
19 20 19 any
Signature: ()Ljava/util/List<Lcom/sun/tools/attach/spi/AttachProvider;>;
}
SourceFile: "AttachProvider.java"