public final class io.netty.util.internal.NativeLibraryLoader
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.util.internal.NativeLibraryLoader
super_class: java.lang.Object
{
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String NATIVE_RESOURCE_HOME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/native/"
private static final java.io.File WORKDIR;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean DELETE_NATIVE_LIB_AFTER_LOADING;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: ldc Lio/netty/util/internal/NativeLibraryLoader;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.netty.util.internal.NativeLibraryLoader.$assertionsDisabled:Z
3: ldc Lio/netty/util/internal/NativeLibraryLoader;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
putstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
4: ldc "io.netty.native.workdir"
invokestatic io.netty.util.internal.SystemPropertyUtil.get:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 5: aload 0
ifnull 14
6: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
start local 1 7: aload 1
invokevirtual java.io.File.mkdirs:()Z
pop
8: aload 1
invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
astore 1
9: goto 11
StackMap locals: java.lang.String java.io.File
StackMap stack: java.lang.Exception
10: pop
11: StackMap locals:
StackMap stack:
aload 1
putstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
12: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
new java.lang.StringBuilder
dup
ldc "-Dio.netty.native.workdir: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
end local 1 13: goto 16
14: StackMap locals:
StackMap stack:
invokestatic io.netty.util.internal.PlatformDependent.tmpdir:()Ljava/io/File;
putstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
15: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
new java.lang.StringBuilder
dup
ldc "-Dio.netty.native.workdir: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " (io.netty.tmpdir)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
ldc "io.netty.native.deleteLibAfterLoading"
iconst_1
17: invokestatic io.netty.util.internal.SystemPropertyUtil.getBoolean:(Ljava/lang/String;Z)Z
putstatic io.netty.util.internal.NativeLibraryLoader.DELETE_NATIVE_LIB_AFTER_LOADING:Z
end local 0 18: return
LocalVariableTable:
Start End Slot Name Signature
5 18 0 workdir Ljava/lang/String;
7 13 1 f Ljava/io/File;
Exception table:
from to target type
8 9 10 Class java.lang.Exception
public static void loadFirstAvailable(java.lang.ClassLoader, java.lang.String[]);
descriptor: (Ljava/lang/ClassLoader;[Ljava/lang/String;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
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
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: java.lang.ClassLoader java.lang.String[] java.util.List top int int java.lang.String[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
aload 0
invokestatic io.netty.util.internal.NativeLibraryLoader.load:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
4: return
5: StackMap locals: java.lang.ClassLoader java.lang.String[] java.util.List java.lang.String int int java.lang.String[]
StackMap stack: java.lang.Throwable
astore 7
start local 7 6: aload 2
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unable to load the library '{}', trying next name..."
aload 3
aload 7
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 7 end local 3 8: iinc 4 1
StackMap locals: java.lang.ClassLoader java.lang.String[] java.util.List top int int java.lang.String[]
StackMap stack:
9: iload 4
iload 5
if_icmplt 2
10: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Failed to load any of the given libraries: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
11: astore 3
start local 3 12: aload 3
aload 2
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressedAndClear:(Ljava/lang/Throwable;Ljava/util/List;)V
13: aload 3
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 loader Ljava/lang/ClassLoader;
0 14 1 names [Ljava/lang/String;
1 14 2 suppressed Ljava/util/List<Ljava/lang/Throwable;>;
3 8 3 name Ljava/lang/String;
6 8 7 t Ljava/lang/Throwable;
12 14 3 iae Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
MethodParameters:
Name Flags
loader
names
private static java.lang.String calculatePackagePrefix();
descriptor: ()Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=0
0: ldc Lio/netty/util/internal/NativeLibraryLoader;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 0
start local 0 1: ldc "io!netty!util!internal!NativeLibraryLoader"
bipush 33
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 1
start local 1 2: aload 0
aload 1
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 7
3: new java.lang.UnsatisfiedLinkError
dup
4: ldc "Could not find prefix added to %s to get %s. When shading, only adding a package prefix is supported"
iconst_2
anewarray java.lang.Object
dup
iconst_0
5: aload 1
aastore
dup
iconst_1
aload 0
aastore
6: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
iconst_0
aload 0
invokevirtual java.lang.String.length:()I
aload 1
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 maybeShaded Ljava/lang/String;
2 8 1 expected Ljava/lang/String;
public static void load(java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=16, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokestatic io.netty.util.internal.NativeLibraryLoader.calculatePackagePrefix:()Ljava/lang/String;
bipush 46
bipush 95
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: aload 1
aload 2
iconst_0
invokestatic io.netty.util.internal.NativeLibraryLoader.loadLibrary:(Ljava/lang/ClassLoader;Ljava/lang/String;Z)V
3: return
4: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List
StackMap stack: java.lang.Throwable
astore 4
start local 4 5: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
7: ldc "{} cannot be loaded from java.libary.path, now trying export to -Dio.netty.native.workdir: {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: aload 2
aastore
dup
iconst_1
getstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
aastore
dup
iconst_2
aload 4
aastore
9: invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 4 10: aload 2
invokestatic java.lang.System.mapLibraryName:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 11: new java.lang.StringBuilder
dup
ldc "META-INF/native/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 12: aconst_null
astore 6
start local 6 13: aconst_null
astore 7
start local 7 14: aconst_null
astore 8
start local 8 15: aload 1
ifnonnull 18
16: aload 5
invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
astore 9
start local 9 17: goto 19
end local 9 18: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File
StackMap stack:
aload 1
aload 5
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 9
start local 9 19: StackMap locals: java.net.URL
StackMap stack:
aload 9
ifnonnull 35
20: invokestatic io.netty.util.internal.PlatformDependent.isOsx:()Z
ifeq 32
21: aload 5
ldc ".jnilib"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 22
new java.lang.StringBuilder
dup
ldc "META-INF/native/lib"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".dynlib"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 23
22: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "META-INF/native/lib"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".jnilib"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: StackMap locals:
StackMap stack: java.lang.String
astore 10
start local 10 24: aload 1
ifnonnull 27
25: aload 10
invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
astore 9
26: goto 28
27: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 10
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 9
28: StackMap locals:
StackMap stack:
aload 9
ifnonnull 35
29: new java.io.FileNotFoundException
dup
aload 10
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
astore 11
start local 11 30: aload 11
aload 3
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressedAndClear:(Ljava/lang/Throwable;Ljava/util/List;)V
31: aload 11
athrow
end local 11 end local 10 32: StackMap locals:
StackMap stack:
new java.io.FileNotFoundException
dup
aload 5
invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
astore 10
start local 10 33: aload 10
aload 3
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressedAndClear:(Ljava/lang/Throwable;Ljava/util/List;)V
34: aload 10
athrow
end local 10 35: StackMap locals:
StackMap stack:
aload 4
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 10
start local 10 36: aload 4
iconst_0
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 11
start local 11 37: aload 4
iload 10
aload 4
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 12
start local 12 38: aload 11
aload 12
getstatic io.netty.util.internal.NativeLibraryLoader.WORKDIR:Ljava/io/File;
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 8
39: aload 9
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 6
40: new java.io.FileOutputStream
dup
aload 8
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 7
41: sipush 8192
newarray 8
astore 13
start local 13 42: goto 44
start local 14 43: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL int java.lang.String java.lang.String byte[] int
StackMap stack:
aload 7
aload 13
iconst_0
iload 14
invokevirtual java.io.OutputStream.write:([BII)V
end local 14 44: StackMap locals:
StackMap stack:
aload 6
aload 13
invokevirtual java.io.InputStream.read:([B)I
dup
istore 14
start local 14 45: ifgt 43
46: aload 7
invokevirtual java.io.OutputStream.flush:()V
47: aload 7
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
48: aconst_null
astore 7
49: aload 1
aload 8
invokevirtual java.io.File.getPath:()Ljava/lang/String;
iconst_1
invokestatic io.netty.util.internal.NativeLibraryLoader.loadLibrary:(Ljava/lang/ClassLoader;Ljava/lang/String;Z)V
end local 14 end local 13 end local 12 end local 11 end local 10 50: goto 74
StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL
StackMap stack: java.lang.UnsatisfiedLinkError
51: astore 10
start local 10 52: aload 8
ifnull 61
aload 8
invokevirtual java.io.File.isFile:()Z
ifeq 61
aload 8
invokevirtual java.io.File.canRead:()Z
ifeq 61
53: aload 8
invokestatic io.netty.util.internal.NativeLibraryLoader$NoexecVolumeDetector.canExecuteExecutable:(Ljava/io/File;)Z
ifne 61
54: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "{} exists but cannot be executed even when execute permissions set; check volume for \"noexec\" flag; use -Dio.netty.native.workdir=[path] to set native working directory separately."
55: aload 8
invokevirtual java.io.File.getPath:()Ljava/lang/String;
56: invokeinterface io.netty.util.internal.logging.InternalLogger.info:(Ljava/lang/String;Ljava/lang/Object;)V
57: goto 61
StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL java.lang.UnsatisfiedLinkError
StackMap stack: java.lang.Throwable
58: astore 11
start local 11 59: aload 3
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
60: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Error checking if {} is on a file store mounted with noexec"
aload 8
aload 11
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 11 61: StackMap locals:
StackMap stack:
aload 10
aload 3
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressedAndClear:(Ljava/lang/Throwable;Ljava/util/List;)V
62: aload 10
athrow
end local 10 63: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL
StackMap stack: java.lang.Exception
astore 10
start local 10 64: new java.lang.UnsatisfiedLinkError
dup
new java.lang.StringBuilder
dup
ldc "could not load a native library: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
astore 11
start local 11 65: aload 11
aload 10
invokevirtual java.lang.UnsatisfiedLinkError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
66: aload 11
aload 3
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressedAndClear:(Ljava/lang/Throwable;Ljava/util/List;)V
67: aload 11
athrow
end local 11 end local 10 68: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
69: aload 6
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
70: aload 7
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
71: aload 8
ifnull 73
getstatic io.netty.util.internal.NativeLibraryLoader.DELETE_NATIVE_LIB_AFTER_LOADING:Z
ifeq 72
aload 8
invokevirtual java.io.File.delete:()Z
ifne 73
72: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL top top top top top java.lang.Throwable
StackMap stack:
aload 8
invokevirtual java.io.File.deleteOnExit:()V
73: StackMap locals:
StackMap stack:
aload 15
athrow
74: StackMap locals: java.lang.String java.lang.ClassLoader java.lang.String java.util.List java.lang.String java.lang.String java.io.InputStream java.io.OutputStream java.io.File java.net.URL
StackMap stack:
aload 6
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
75: aload 7
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
76: aload 8
ifnull 78
getstatic io.netty.util.internal.NativeLibraryLoader.DELETE_NATIVE_LIB_AFTER_LOADING:Z
ifeq 77
aload 8
invokevirtual java.io.File.delete:()Z
ifne 78
77: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.io.File.deleteOnExit:()V
78: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 end local 6 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 79 0 originalName Ljava/lang/String;
0 79 1 loader Ljava/lang/ClassLoader;
1 79 2 name Ljava/lang/String;
2 79 3 suppressed Ljava/util/List<Ljava/lang/Throwable;>;
5 10 4 ex Ljava/lang/Throwable;
11 79 4 libname Ljava/lang/String;
12 79 5 path Ljava/lang/String;
13 79 6 in Ljava/io/InputStream;
14 79 7 out Ljava/io/OutputStream;
15 79 8 tmpFile Ljava/io/File;
17 18 9 url Ljava/net/URL;
19 79 9 url Ljava/net/URL;
24 32 10 fileName Ljava/lang/String;
30 32 11 fnf Ljava/io/FileNotFoundException;
33 35 10 fnf Ljava/io/FileNotFoundException;
36 50 10 index I
37 50 11 prefix Ljava/lang/String;
38 50 12 suffix Ljava/lang/String;
42 50 13 buffer [B
43 44 14 length I
45 50 14 length I
52 63 10 e Ljava/lang/UnsatisfiedLinkError;
59 61 11 t Ljava/lang/Throwable;
64 68 10 e Ljava/lang/Exception;
65 68 11 ule Ljava/lang/UnsatisfiedLinkError;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
19 50 51 Class java.lang.UnsatisfiedLinkError
52 57 58 Class java.lang.Throwable
19 50 63 Class java.lang.Exception
19 68 68 any
MethodParameters:
Name Flags
originalName
loader
private static void loadLibrary(java.lang.ClassLoader, java.lang.String, boolean);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
ldc Lio/netty/util/internal/NativeLibraryUtil;
invokestatic io.netty.util.internal.NativeLibraryLoader.tryToLoadClass:(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;
astore 4
start local 4 2: aload 4
aload 1
iload 2
invokestatic io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper:(Ljava/lang/Class;Ljava/lang/String;Z)V
3: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Successfully loaded the library {}"
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
4: return
end local 4 5: StackMap locals: java.lang.ClassLoader java.lang.String int java.lang.Throwable
StackMap stack: java.lang.UnsatisfiedLinkError
astore 4
start local 4 6: aload 4
astore 3
7: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unable to load the library '{}', trying other loading mechanism."
aload 1
aload 4
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 8: goto 12
9: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 10: aload 4
astore 3
11: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Unable to load the library '{}', trying other loading mechanism."
aload 1
aload 4
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 12: StackMap locals:
StackMap stack:
aload 1
iload 2
invokestatic io.netty.util.internal.NativeLibraryUtil.loadLibrary:(Ljava/lang/String;Z)V
13: getstatic io.netty.util.internal.NativeLibraryLoader.logger:Lio/netty/util/internal/logging/InternalLogger;
ldc "Successfully loaded the library {}"
aload 1
invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
14: goto 19
StackMap locals:
StackMap stack: java.lang.UnsatisfiedLinkError
15: astore 4
start local 4 16: aload 3
ifnull 18
17: aload 4
aload 3
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressed:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
18: StackMap locals: java.lang.UnsatisfiedLinkError
StackMap stack:
aload 4
athrow
end local 4 19: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 loader Ljava/lang/ClassLoader;
0 20 1 name Ljava/lang/String;
0 20 2 absolute Z
1 20 3 suppressed Ljava/lang/Throwable;
2 5 4 newHelper Ljava/lang/Class<*>;
6 8 4 e Ljava/lang/UnsatisfiedLinkError;
10 12 4 e Ljava/lang/Exception;
16 19 4 ule Ljava/lang/UnsatisfiedLinkError;
Exception table:
from to target type
1 4 5 Class java.lang.UnsatisfiedLinkError
1 4 9 Class java.lang.Exception
1 4 15 Class java.lang.UnsatisfiedLinkError
5 14 15 Class java.lang.UnsatisfiedLinkError
MethodParameters:
Name Flags
loader final
name final
absolute final
private static void loadLibraryByHelper(java.lang.Class<?>, java.lang.String, );
descriptor: (Ljava/lang/Class;Ljava/lang/String;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new io.netty.util.internal.NativeLibraryLoader$1
dup
aload 0
aload 1
iload 2
invokespecial io.netty.util.internal.NativeLibraryLoader$1.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
instanceof java.lang.Throwable
ifeq 10
2: aload 3
checkcast java.lang.Throwable
astore 4
start local 4 3: getstatic io.netty.util.internal.NativeLibraryLoader.$assertionsDisabled:Z
ifne 4
aload 4
instanceof java.lang.UnsatisfiedLinkError
ifeq 4
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " should be a wrapper throwable"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: java.lang.Object java.lang.Throwable
StackMap stack:
aload 4
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 5
start local 5 5: aload 5
instanceof java.lang.UnsatisfiedLinkError
ifeq 7
6: aload 5
checkcast java.lang.UnsatisfiedLinkError
athrow
7: StackMap locals: java.lang.Throwable
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
aload 4
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
astore 6
start local 6 8: aload 6
aload 4
invokevirtual java.lang.UnsatisfiedLinkError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
9: aload 6
athrow
end local 6 end local 5 end local 4 10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 helper Ljava/lang/Class<*>;
0 11 1 name Ljava/lang/String;
0 11 2 absolute Z
1 11 3 ret Ljava/lang/Object;
3 10 4 t Ljava/lang/Throwable;
5 10 5 cause Ljava/lang/Throwable;
8 10 6 ule Ljava/lang/UnsatisfiedLinkError;
Exceptions:
throws java.lang.UnsatisfiedLinkError
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Z)V
MethodParameters:
Name Flags
helper final
name final
absolute final
private static java.lang.Class<?> tryToLoadClass(java.lang.ClassLoader, java.lang.Class<?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iconst_0
aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 2
start local 2 3: aload 0
ifnonnull 5
4: aload 2
athrow
5: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
aload 1
invokestatic io.netty.util.internal.NativeLibraryLoader.classToByteArray:(Ljava/lang/Class;)[B
astore 3
start local 3 6: new io.netty.util.internal.NativeLibraryLoader$2
dup
aload 0
aload 1
aload 3
invokespecial io.netty.util.internal.NativeLibraryLoader$2.<init>:(Ljava/lang/ClassLoader;Ljava/lang/Class;[B)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Class
7: areturn
end local 3 8: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 9: aload 3
aload 2
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressed:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
10: aload 3
athrow
end local 3 11: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 3
start local 3 12: aload 3
aload 2
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressed:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
13: aload 3
athrow
end local 3 14: StackMap locals:
StackMap stack: java.lang.Error
astore 3
start local 3 15: aload 3
aload 2
invokestatic io.netty.util.internal.ThrowableUtil.addSuppressed:(Ljava/lang/Throwable;Ljava/lang/Throwable;)V
16: aload 3
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 loader Ljava/lang/ClassLoader;
0 17 1 helper Ljava/lang/Class<*>;
3 17 2 e1 Ljava/lang/ClassNotFoundException;
6 8 3 classBinary [B
9 11 3 e2 Ljava/lang/ClassNotFoundException;
12 14 3 e2 Ljava/lang/RuntimeException;
15 17 3 e2 Ljava/lang/Error;
Exception table:
from to target type
0 1 2 Class java.lang.ClassNotFoundException
5 7 8 Class java.lang.ClassNotFoundException
5 7 11 Class java.lang.RuntimeException
5 7 14 Class java.lang.Error
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
loader final
helper final
private static byte[] classToByteArray(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
start local 2 2: iload 2
ifle 4
3: aload 1
iload 2
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
4: StackMap locals: java.lang.String int
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.Class.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 3
start local 3 5: aload 3
ifnonnull 7
6: new java.lang.ClassNotFoundException
dup
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.net.URL
StackMap stack:
sipush 1024
newarray 8
astore 4
start local 4 8: new java.io.ByteArrayOutputStream
dup
sipush 4096
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 5
start local 5 9: aconst_null
astore 6
start local 6 10: aload 3
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 6
11: goto 13
start local 7 12: StackMap locals: java.lang.Class java.lang.String int java.net.URL byte[] java.io.ByteArrayOutputStream java.io.InputStream int
StackMap stack:
aload 5
aload 4
iconst_0
iload 7
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
end local 7 13: StackMap locals:
StackMap stack:
aload 6
aload 4
invokevirtual java.io.InputStream.read:([B)I
dup
istore 7
start local 7 14: iconst_m1
if_icmpne 12
end local 7 15: aload 5
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 9
16: aload 6
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
17: aload 5
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
18: aload 9
areturn
19: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 20: new java.lang.ClassNotFoundException
dup
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 7
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
22: aload 6
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
23: aload 5
invokestatic io.netty.util.internal.NativeLibraryLoader.closeQuietly:(Ljava/io/Closeable;)V
24: aload 8
athrow
end local 6 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 25 0 clazz Ljava/lang/Class<*>;
1 25 1 fileName Ljava/lang/String;
2 25 2 lastDot I
5 25 3 classUrl Ljava/net/URL;
8 25 4 buf [B
9 25 5 out Ljava/io/ByteArrayOutputStream;
10 25 6 in Ljava/io/InputStream;
12 13 7 r I
14 15 7 r I
20 21 7 ex Ljava/io/IOException;
Exception table:
from to target type
10 16 19 Class java.io.IOException
10 16 21 any
19 21 21 any
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/Class<*>;)[B
MethodParameters:
Name Flags
clazz
private static void closeQuietly(java.io.Closeable);
descriptor: (Ljava/io/Closeable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
invokeinterface java.io.Closeable.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 c Ljava/io/Closeable;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
c
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/util/internal/NativeLibraryLoader;
}
SourceFile: "NativeLibraryLoader.java"
NestMembers:
io.netty.util.internal.NativeLibraryLoader$1 io.netty.util.internal.NativeLibraryLoader$2 io.netty.util.internal.NativeLibraryLoader$NoexecVolumeDetector
InnerClasses:
io.netty.util.internal.NativeLibraryLoader$1
io.netty.util.internal.NativeLibraryLoader$2
private final NoexecVolumeDetector = io.netty.util.internal.NativeLibraryLoader$NoexecVolumeDetector of io.netty.util.internal.NativeLibraryLoader