class io.vertx.core.impl.LoaderManager
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.vertx.core.impl.LoaderManager
super_class: java.lang.Object
{
private final java.util.Map<java.lang.String, io.vertx.core.impl.ClassLoaderHolder> classLoaders;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/core/impl/ClassLoaderHolder;>;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.vertx.core.impl.LoaderManager.classLoaders:Ljava/util/Map;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/core/impl/LoaderManager;
io.vertx.core.impl.ClassLoaderHolder getClassLoader(io.vertx.core.DeploymentOptions);
descriptor: (Lio/vertx/core/DeploymentOptions;)Lio/vertx/core/impl/ClassLoaderHolder;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.vertx.core.DeploymentOptions.getIsolationGroup:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
dup
astore 4
monitorenter
4: aload 0
getfield io.vertx.core.impl.LoaderManager.classLoaders:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.vertx.core.impl.ClassLoaderHolder
astore 3
start local 3 5: aload 3
ifnonnull 11
6: invokestatic io.vertx.core.impl.VerticleManager.getCurrentClassLoader:()Ljava/lang/ClassLoader;
astore 5
start local 5 7: aload 5
instanceof java.net.URLClassLoader
ifne 9
8: new java.lang.IllegalStateException
dup
ldc "Current classloader must be URLClassLoader"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: io.vertx.core.impl.ClassLoaderHolder io.vertx.core.impl.LoaderManager java.lang.ClassLoader
StackMap stack:
new io.vertx.core.impl.ClassLoaderHolder
dup
aload 2
aload 5
checkcast java.net.URLClassLoader
aload 1
invokestatic io.vertx.core.impl.LoaderManager.buildLoader:(Ljava/net/URLClassLoader;Lio/vertx/core/DeploymentOptions;)Ljava/lang/ClassLoader;
invokespecial io.vertx.core.impl.ClassLoaderHolder.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
astore 3
10: aload 0
getfield io.vertx.core.impl.LoaderManager.classLoaders:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 11: StackMap locals:
StackMap stack:
aload 3
dup
getfield io.vertx.core.impl.ClassLoaderHolder.refCount:I
iconst_1
iadd
putfield io.vertx.core.impl.ClassLoaderHolder.refCount:I
12: aload 4
monitorexit
13: goto 16
end local 3 StackMap locals: io.vertx.core.impl.LoaderManager io.vertx.core.DeploymentOptions java.lang.String top io.vertx.core.impl.LoaderManager
StackMap stack: java.lang.Throwable
14: aload 4
monitorexit
15: athrow
start local 3 16: StackMap locals: io.vertx.core.impl.LoaderManager io.vertx.core.DeploymentOptions java.lang.String io.vertx.core.impl.ClassLoaderHolder
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/vertx/core/impl/LoaderManager;
0 17 1 options Lio/vertx/core/DeploymentOptions;
1 17 2 isolationGroup Ljava/lang/String;
5 14 3 holder Lio/vertx/core/impl/ClassLoaderHolder;
16 17 3 holder Lio/vertx/core/impl/ClassLoaderHolder;
7 11 5 current Ljava/lang/ClassLoader;
Exception table:
from to target type
4 13 14 any
14 15 14 any
MethodParameters:
Name Flags
options
void release(io.vertx.core.impl.ClassLoaderHolder);
descriptor: (Lio/vertx/core/impl/ClassLoaderHolder;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 1
dup
getfield io.vertx.core.impl.ClassLoaderHolder.refCount:I
iconst_1
isub
dup_x1
putfield io.vertx.core.impl.ClassLoaderHolder.refCount:I
ifne 7
2: aload 0
getfield io.vertx.core.impl.LoaderManager.classLoaders:Ljava/util/Map;
aload 1
getfield io.vertx.core.impl.ClassLoaderHolder.group:Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
getfield io.vertx.core.impl.ClassLoaderHolder.loader:Ljava/lang/ClassLoader;
instanceof java.io.Closeable
ifeq 7
4: aload 1
getfield io.vertx.core.impl.ClassLoaderHolder.loader:Ljava/lang/ClassLoader;
checkcast java.io.Closeable
invokeinterface java.io.Closeable.close:()V
5: goto 7
StackMap locals: io.vertx.core.impl.LoaderManager io.vertx.core.impl.ClassLoaderHolder io.vertx.core.impl.LoaderManager
StackMap stack: java.io.IOException
6: pop
7: StackMap locals:
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/core/impl/LoaderManager;
0 12 1 holder Lio/vertx/core/impl/ClassLoaderHolder;
Exception table:
from to target type
4 5 6 Class java.io.IOException
1 8 9 any
9 10 9 any
MethodParameters:
Name Flags
holder
private static java.lang.ClassLoader buildLoader(java.net.URLClassLoader, io.vertx.core.DeploymentOptions);
descriptor: (Ljava/net/URLClassLoader;Lio/vertx/core/DeploymentOptions;)Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, 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 1
invokevirtual io.vertx.core.DeploymentOptions.getExtraClasspath:()Ljava/util/List;
astore 3
start local 3 2: aload 3
ifnull 12
3: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: java.net.URLClassLoader io.vertx.core.DeploymentOptions java.util.List java.util.List top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 5: new java.io.File
dup
aload 4
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 6: aload 6
invokevirtual java.io.File.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
astore 7
start local 7 7: aload 2
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 8: goto 11
StackMap locals: java.net.URLClassLoader io.vertx.core.DeploymentOptions java.util.List java.util.List java.lang.String java.util.Iterator java.io.File
StackMap stack: java.net.MalformedURLException
9: astore 7
start local 7 10: new java.lang.IllegalStateException
dup
aload 7
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 end local 6 end local 4 11: StackMap locals: java.net.URLClassLoader io.vertx.core.DeploymentOptions java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
12: StackMap locals: java.net.URLClassLoader io.vertx.core.DeploymentOptions java.util.List java.util.List
StackMap stack:
aload 2
aload 0
invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
13: new io.vertx.core.impl.IsolatingClassLoader
dup
aload 2
iconst_0
anewarray java.net.URL
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.net.URL[]
aload 0
14: aload 1
invokevirtual io.vertx.core.DeploymentOptions.getIsolatedClasses:()Ljava/util/List;
15: invokespecial io.vertx.core.impl.IsolatingClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/util/List;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 parent Ljava/net/URLClassLoader;
0 16 1 options Lio/vertx/core/DeploymentOptions;
1 16 2 urls Ljava/util/List<Ljava/net/URL;>;
2 16 3 extraClasspath Ljava/util/List<Ljava/lang/String;>;
5 11 4 pathElement Ljava/lang/String;
6 11 6 file Ljava/io/File;
7 8 7 url Ljava/net/URL;
10 11 7 e Ljava/net/MalformedURLException;
Exception table:
from to target type
6 8 9 Class java.net.MalformedURLException
MethodParameters:
Name Flags
parent
options
}
SourceFile: "LoaderManager.java"