public class sun.misc.ExtensionDependency
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.ExtensionDependency
super_class: java.lang.Object
{
private static java.util.Vector<sun.misc.ExtensionInstallationProvider> providers;
descriptor: Ljava/util/Vector;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Vector<Lsun/misc/ExtensionInstallationProvider;>;
static final boolean DEBUG;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/ExtensionDependency;
public static synchronized void addExtensionInstallationProvider(sun.misc.ExtensionInstallationProvider);
descriptor: (Lsun/misc/ExtensionInstallationProvider;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
ifnonnull 2
1: new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
2: StackMap locals:
StackMap stack:
getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
aload 0
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 eip Lsun/misc/ExtensionInstallationProvider;
MethodParameters:
Name Flags
eip
public static synchronized void removeExtensionInstallationProvider(sun.misc.ExtensionInstallationProvider);
descriptor: (Lsun/misc/ExtensionInstallationProvider;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
aload 0
invokevirtual java.util.Vector.remove:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 eip Lsun/misc/ExtensionInstallationProvider;
MethodParameters:
Name Flags
eip
public static boolean checkExtensionsDependencies(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
new sun.misc.ExtensionDependency
dup
invokespecial sun.misc.ExtensionDependency.<init>:()V
astore 1
start local 1 3: aload 1
aload 0
invokevirtual sun.misc.ExtensionDependency.checkExtensions:(Ljava/util/jar/JarFile;)Z
4: ireturn
end local 1 5: StackMap locals:
StackMap stack: sun.misc.ExtensionInstallationException
astore 1
start local 1 6: aload 1
invokevirtual sun.misc.ExtensionInstallationException.getMessage:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
end local 1 7: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 jar Ljava/util/jar/JarFile;
3 5 1 extDep Lsun/misc/ExtensionDependency;
6 7 1 e Lsun/misc/ExtensionInstallationException;
Exception table:
from to target type
2 4 5 Class sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
jar
protected boolean checkExtensions(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: iconst_0
ireturn
start local 2 4: StackMap locals: java.util.jar.Manifest
StackMap stack:
aload 2
ifnonnull 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
istore 3
start local 3 7: aload 2
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 4
start local 4 8: aload 4
ifnull 33
9: aload 4
getstatic java.util.jar.Attributes$Name.EXTENSION_LIST:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 5
start local 5 10: aload 5
ifnull 32
11: new java.util.StringTokenizer
dup
aload 5
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 6
start local 6 12: goto 30
13: StackMap locals: sun.misc.ExtensionDependency java.util.jar.JarFile java.util.jar.Manifest int java.util.jar.Attributes java.lang.String java.util.StringTokenizer
StackMap stack:
aload 6
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 7
start local 7 14: new java.lang.StringBuilder
dup
ldc "The file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: ldc " appears to depend on "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
17: new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: getstatic java.util.jar.Attributes$Name.EXTENSION_NAME:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes$Name.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 20: aload 4
aload 8
invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 27
21: new java.lang.StringBuilder
dup
ldc "The jar file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc " appers to depend on "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " but does not define the "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " attribute in its manifest "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
26: goto 30
27: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
aload 7
aload 4
invokevirtual sun.misc.ExtensionDependency.checkExtension:(Ljava/lang/String;Ljava/util/jar/Attributes;)Z
ifne 30
28: new java.lang.StringBuilder
dup
ldc "Failed installing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
29: iconst_0
istore 3
end local 8 end local 7 30: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 13
end local 6 31: goto 33
32: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "No dependencies for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
end local 5 33: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/misc/ExtensionDependency;
0 34 1 jar Ljava/util/jar/JarFile;
1 2 2 man Ljava/util/jar/Manifest;
4 34 2 man Ljava/util/jar/Manifest;
7 34 3 result Z
8 34 4 attr Ljava/util/jar/Attributes;
10 33 5 value Ljava/lang/String;
12 31 6 st Ljava/util/StringTokenizer;
14 30 7 extensionName Ljava/lang/String;
20 30 8 extName Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.io.IOException
Exceptions:
throws sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
jar
protected synchronized boolean checkExtension(java.lang.String, java.util.jar.Attributes);
descriptor: (Ljava/lang/String;Ljava/util/jar/Attributes;)Z
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
ldc "Checking extension "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
1: aload 0
aload 1
aload 2
invokevirtual sun.misc.ExtensionDependency.checkExtensionAgainstInstalled:(Ljava/lang/String;Ljava/util/jar/Attributes;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
ldc "Extension not currently installed "
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
4: new sun.misc.ExtensionInfo
dup
aload 1
aload 2
invokespecial sun.misc.ExtensionInfo.<init>:(Ljava/lang/String;Ljava/util/jar/Attributes;)V
astore 3
start local 3 5: aload 0
aload 3
aconst_null
invokevirtual sun.misc.ExtensionDependency.installExtension:(Lsun/misc/ExtensionInfo;Lsun/misc/ExtensionInfo;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/misc/ExtensionDependency;
0 6 1 extensionName Ljava/lang/String;
0 6 2 attr Ljava/util/jar/Attributes;
5 6 3 reqInfo Lsun/misc/ExtensionInfo;
Exceptions:
throws sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
extensionName final
attr final
boolean checkExtensionAgainstInstalled(java.lang.String, java.util.jar.Attributes);
descriptor: (Ljava/lang/String;Ljava/util/jar/Attributes;)Z
flags: (0x0000)
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.misc.ExtensionDependency.checkExtensionExists:(Ljava/lang/String;)Ljava/io/File;
astore 3
start local 3 1: aload 3
ifnull 10
2: aload 0
aload 1
aload 2
aload 3
invokevirtual sun.misc.ExtensionDependency.checkExtensionAgainst:(Ljava/lang/String;Ljava/util/jar/Attributes;Ljava/io/File;)Z
ifeq 9
3: iconst_1
ireturn
4: StackMap locals: sun.misc.ExtensionDependency java.lang.String java.util.jar.Attributes java.io.File
StackMap stack: java.io.FileNotFoundException
astore 4
start local 4 5: aload 0
aload 4
invokevirtual sun.misc.ExtensionDependency.debugException:(Ljava/lang/Throwable;)V
end local 4 6: goto 9
7: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 8: aload 0
aload 4
invokevirtual sun.misc.ExtensionDependency.debugException:(Ljava/lang/Throwable;)V
end local 4 9: StackMap locals:
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.misc.ExtensionDependency.getInstalledExtensions:()[Ljava/io/File;
astore 4
start local 4 11: goto 15
end local 4 StackMap locals:
StackMap stack: java.io.IOException
12: astore 5
start local 5 13: aload 0
aload 5
invokevirtual sun.misc.ExtensionDependency.debugException:(Ljava/lang/Throwable;)V
14: iconst_0
ireturn
end local 5 start local 4 15: StackMap locals: java.io.File[]
StackMap stack:
iconst_0
istore 5
start local 5 16: goto 25
17: StackMap locals: int
StackMap stack:
aload 0
aload 1
aload 2
aload 4
iload 5
aaload
invokevirtual sun.misc.ExtensionDependency.checkExtensionAgainst:(Ljava/lang/String;Ljava/util/jar/Attributes;Ljava/io/File;)Z
ifeq 24
18: iconst_1
ireturn
19: StackMap locals:
StackMap stack: java.io.FileNotFoundException
astore 6
start local 6 20: aload 0
aload 6
invokevirtual sun.misc.ExtensionDependency.debugException:(Ljava/lang/Throwable;)V
end local 6 21: goto 24
22: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 23: aload 0
aload 6
invokevirtual sun.misc.ExtensionDependency.debugException:(Ljava/lang/Throwable;)V
end local 6 24: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
25: iload 5
aload 4
arraylength
if_icmplt 17
end local 5 end local 4 26: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/misc/ExtensionDependency;
0 27 1 extensionName Ljava/lang/String;
0 27 2 attr Ljava/util/jar/Attributes;
1 27 3 fExtension Ljava/io/File;
5 6 4 e Ljava/io/FileNotFoundException;
8 9 4 e Ljava/io/IOException;
11 12 4 installedExts [Ljava/io/File;
15 26 4 installedExts [Ljava/io/File;
13 15 5 e Ljava/io/IOException;
16 26 5 i I
20 21 6 e Ljava/io/FileNotFoundException;
23 24 6 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.FileNotFoundException
2 3 7 Class java.io.IOException
10 11 12 Class java.io.IOException
17 18 19 Class java.io.FileNotFoundException
17 18 22 Class java.io.IOException
Exceptions:
throws sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
extensionName
attr
protected boolean checkExtensionAgainst(java.lang.String, java.util.jar.Attributes, java.io.File);
descriptor: (Ljava/lang/String;Ljava/util/jar/Attributes;Ljava/io/File;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "Checking extension "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " against "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
3: new sun.misc.ExtensionDependency$1
dup
aload 0
aload 3
invokespecial sun.misc.ExtensionDependency$1.<init>:(Lsun/misc/ExtensionDependency;Ljava/io/File;)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.util.jar.Manifest
astore 4
start local 4 5: goto 10
end local 4 StackMap locals:
StackMap stack: java.security.PrivilegedActionException
6: astore 5
start local 5 7: aload 5
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
instanceof java.io.FileNotFoundException
ifeq 9
8: aload 5
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
checkcast java.io.FileNotFoundException
athrow
9: StackMap locals: sun.misc.ExtensionDependency java.lang.String java.util.jar.Attributes java.io.File top java.security.PrivilegedActionException
StackMap stack:
aload 5
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
checkcast java.io.IOException
athrow
end local 5 start local 4 10: StackMap locals: sun.misc.ExtensionDependency java.lang.String java.util.jar.Attributes java.io.File java.util.jar.Manifest
StackMap stack:
new sun.misc.ExtensionInfo
dup
aload 1
aload 2
invokespecial sun.misc.ExtensionInfo.<init>:(Ljava/lang/String;Ljava/util/jar/Attributes;)V
astore 5
start local 5 11: new java.lang.StringBuilder
dup
ldc "Requested Extension : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
12: iconst_4
istore 6
start local 6 13: aconst_null
astore 7
start local 7 14: aload 4
ifnull 27
15: aload 4
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 8
start local 8 16: aload 8
ifnull 27
17: new sun.misc.ExtensionInfo
dup
aconst_null
aload 8
invokespecial sun.misc.ExtensionInfo.<init>:(Ljava/lang/String;Ljava/util/jar/Attributes;)V
astore 7
18: new java.lang.StringBuilder
dup
ldc "Extension Installed "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
19: aload 7
aload 5
invokevirtual sun.misc.ExtensionInfo.isCompatibleWith:(Lsun/misc/ExtensionInfo;)I
istore 6
20: iload 6
tableswitch { // 0 - 4
0: 21
1: 25
2: 25
3: 25
4: 23
default: 25
}
21: StackMap locals: sun.misc.ExtensionDependency java.lang.String java.util.jar.Attributes java.io.File java.util.jar.Manifest sun.misc.ExtensionInfo int sun.misc.ExtensionInfo java.util.jar.Attributes
StackMap stack:
ldc "Extensions are compatible"
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
22: iconst_1
ireturn
23: StackMap locals:
StackMap stack:
ldc "Extensions are incompatible"
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
24: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
ldc "Extensions require an upgrade or vendor switch"
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
26: aload 0
aload 5
aload 7
invokevirtual sun.misc.ExtensionDependency.installExtension:(Lsun/misc/ExtensionInfo;Lsun/misc/ExtensionInfo;)Z
ireturn
end local 8 27: StackMap locals:
StackMap stack:
iconst_0
ireturn
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 28 0 this Lsun/misc/ExtensionDependency;
0 28 1 extensionName Ljava/lang/String;
0 28 2 attr Ljava/util/jar/Attributes;
0 28 3 file Ljava/io/File;
5 6 4 man Ljava/util/jar/Manifest;
10 28 4 man Ljava/util/jar/Manifest;
7 10 5 e Ljava/security/PrivilegedActionException;
11 28 5 reqInfo Lsun/misc/ExtensionInfo;
13 28 6 isCompatible I
14 28 7 instInfo Lsun/misc/ExtensionInfo;
16 27 8 instAttr Ljava/util/jar/Attributes;
Exception table:
from to target type
3 5 6 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException, java.io.FileNotFoundException, sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
extensionName
attr
file final
protected boolean installExtension(sun.misc.ExtensionInfo, sun.misc.ExtensionInfo);
descriptor: (Lsun/misc/ExtensionInfo;Lsun/misc/ExtensionInfo;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
dup
astore 4
monitorenter
1: getstatic sun.misc.ExtensionDependency.providers:Ljava/util/Vector;
invokevirtual java.util.Vector.clone:()Ljava/lang/Object;
checkcast java.util.Vector
2: astore 5
start local 5 3: aload 5
astore 3
end local 5 start local 3 4: aload 4
monitorexit
5: goto 8
end local 3 StackMap locals: sun.misc.ExtensionDependency sun.misc.ExtensionInfo sun.misc.ExtensionInfo top java.util.Vector
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
start local 3 8: StackMap locals: sun.misc.ExtensionDependency sun.misc.ExtensionInfo sun.misc.ExtensionInfo java.util.Vector
StackMap stack:
aload 3
invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
astore 4
start local 4 9: goto 18
10: StackMap locals: java.util.Enumeration
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast sun.misc.ExtensionInstallationProvider
astore 5
start local 5 11: aload 5
ifnull 18
12: aload 5
aload 1
aload 2
invokeinterface sun.misc.ExtensionInstallationProvider.installExtension:(Lsun/misc/ExtensionInfo;Lsun/misc/ExtensionInfo;)Z
ifeq 18
13: new java.lang.StringBuilder
dup
aload 1
getfield sun.misc.ExtensionInfo.name:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " installation successful"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
14: invokestatic sun.misc.Launcher.getLauncher:()Lsun/misc/Launcher;
invokevirtual sun.misc.Launcher.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
15: checkcast sun.misc.Launcher$ExtClassLoader
astore 6
start local 6 16: aload 0
aload 6
invokevirtual sun.misc.ExtensionDependency.addNewExtensionsToClassLoader:(Lsun/misc/Launcher$ExtClassLoader;)Ljava/lang/Boolean;
pop
17: iconst_1
ireturn
end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 10
end local 4 19: new java.lang.StringBuilder
dup
aload 1
getfield sun.misc.ExtensionInfo.name:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " installation failed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
20: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/misc/ExtensionDependency;
0 21 1 reqInfo Lsun/misc/ExtensionInfo;
0 21 2 instInfo Lsun/misc/ExtensionInfo;
4 6 3 currentProviders Ljava/util/Vector<Lsun/misc/ExtensionInstallationProvider;>;
8 21 3 currentProviders Ljava/util/Vector<Lsun/misc/ExtensionInstallationProvider;>;
3 4 5 tmp Ljava/util/Vector<Lsun/misc/ExtensionInstallationProvider;>;
9 19 4 e Ljava/util/Enumeration<Lsun/misc/ExtensionInstallationProvider;>;
11 18 5 eip Lsun/misc/ExtensionInstallationProvider;
16 18 6 cl Lsun/misc/Launcher$ExtClassLoader;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws sun.misc.ExtensionInstallationException
MethodParameters:
Name Flags
reqInfo
instInfo
private java.io.File checkExtensionExists(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc ".jar"
aastore
dup
iconst_1
ldc ".zip"
aastore
astore 3
start local 3 2: new sun.misc.ExtensionDependency$2
dup
aload 0
aload 3
aload 2
invokespecial sun.misc.ExtensionDependency$2.<init>:(Lsun/misc/ExtensionDependency;[Ljava/lang/String;Ljava/lang/String;)V
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.io.File
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/misc/ExtensionDependency;
0 4 1 extensionName Ljava/lang/String;
1 4 2 extName Ljava/lang/String;
2 4 3 fileExt [Ljava/lang/String;
MethodParameters:
Name Flags
extensionName
private static java.io.File[] getExtDirs();
descriptor: ()[Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=0
0: new sun.security.action.GetPropertyAction
dup
ldc "java.ext.dirs"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 0
start local 0 2: aload 0
ifnull 15
3: new java.util.StringTokenizer
dup
aload 0
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
4: astore 2
start local 2 5: aload 2
invokevirtual java.util.StringTokenizer.countTokens:()I
istore 3
start local 3 6: new java.lang.StringBuilder
dup
ldc "getExtDirs count "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
7: iload 3
anewarray java.io.File
astore 1
start local 1 8: iconst_0
istore 4
start local 4 9: goto 13
10: StackMap locals: java.lang.String java.io.File[] java.util.StringTokenizer int int
StackMap stack:
aload 1
iload 4
new java.io.File
dup
aload 2
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
aastore
11: new java.lang.StringBuilder
dup
ldc "getExtDirs dirs["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
iload 4
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
12: iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
iload 3
if_icmplt 10
end local 4 end local 3 end local 2 14: goto 17
end local 1 15: StackMap locals: java.lang.String
StackMap stack:
iconst_0
anewarray java.io.File
astore 1
start local 1 16: new java.lang.StringBuilder
dup
ldc "getExtDirs dirs "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
17: StackMap locals: java.io.File[]
StackMap stack:
new java.lang.StringBuilder
dup
ldc "getExtDirs dirs.length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
18: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
2 19 0 s Ljava/lang/String;
8 15 1 dirs [Ljava/io/File;
16 19 1 dirs [Ljava/io/File;
5 14 2 st Ljava/util/StringTokenizer;
6 14 3 count I
9 14 4 i I
private static java.io.File[] getExtFiles(java.io.File[]);
descriptor: ([Ljava/io/File;)[Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 14
3: StackMap locals: java.util.Vector int
StackMap stack:
aload 0
iload 2
aaload
new sun.misc.JarFilter
dup
invokespecial sun.misc.JarFilter.<init>:()V
invokevirtual java.io.File.list:(Ljava/io/FilenameFilter;)[Ljava/lang/String;
astore 3
start local 3 4: aload 3
ifnull 13
5: new java.lang.StringBuilder
dup
ldc "getExtFiles files.length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
6: iconst_0
istore 4
start local 4 7: goto 12
8: StackMap locals: java.lang.String[] int
StackMap stack:
new java.io.File
dup
aload 0
iload 2
aaload
aload 3
iload 4
aaload
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
start local 5 9: aload 1
aload 5
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
10: new java.lang.StringBuilder
dup
ldc "getExtFiles f["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
end local 5 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 3
arraylength
if_icmplt 8
end local 4 end local 3 13: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
14: iload 2
aload 0
arraylength
if_icmplt 3
end local 2 15: aload 1
invokevirtual java.util.Vector.size:()I
anewarray java.io.File
astore 2
start local 2 16: aload 1
aload 2
invokevirtual java.util.Vector.copyInto:([Ljava/lang/Object;)V
17: new java.lang.StringBuilder
dup
ldc "getExtFiles ua.length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
18: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 dirs [Ljava/io/File;
1 19 1 urls Ljava/util/Vector<Ljava/io/File;>;
2 15 2 i I
4 13 3 files [Ljava/lang/String;
7 13 4 j I
9 11 5 f Ljava/io/File;
16 19 2 ua [Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dirs
private java.io.File[] getInstalledExtensions();
descriptor: ()[Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.misc.ExtensionDependency$3
dup
aload 0
invokespecial sun.misc.ExtensionDependency$3.<init>:(Lsun/misc/ExtensionDependency;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.io.File[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ExtensionDependency;
Exceptions:
throws java.io.IOException
private java.lang.Boolean addNewExtensionsToClassLoader(sun.misc.Launcher$ExtClassLoader);
descriptor: (Lsun/misc/Launcher$ExtClassLoader;)Ljava/lang/Boolean;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.misc.ExtensionDependency.getInstalledExtensions:()[Ljava/io/File;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 27
3: StackMap locals: java.io.File[] int
StackMap stack:
aload 2
iload 3
aaload
astore 4
start local 4 4: new sun.misc.ExtensionDependency$4
dup
aload 0
aload 4
invokespecial sun.misc.ExtensionDependency$4.<init>:(Lsun/misc/ExtensionDependency;Ljava/io/File;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.URL
astore 5
start local 5 6: aload 5
ifnull 26
7: aload 1
invokevirtual sun.misc.Launcher$ExtClassLoader.getURLs:()[Ljava/net/URL;
astore 6
start local 6 8: iconst_0
istore 7
start local 7 9: iconst_0
istore 8
start local 8 10: goto 20
11: StackMap locals: sun.misc.ExtensionDependency sun.misc.Launcher$ExtClassLoader java.io.File[] int java.io.File java.net.URL java.net.URL[] int int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "URL["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] is "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
iload 8
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " looking for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
14: aload 6
iload 8
aaload
invokevirtual java.net.URL.toString:()Ljava/lang/String;
15: aload 5
invokevirtual java.net.URL.toString:()Ljava/lang/String;
16: invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
ifne 19
17: iconst_1
istore 7
18: ldc "Found !"
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
20: iload 8
aload 6
arraylength
if_icmplt 11
end local 8 21: iload 7
ifne 26
22: new java.lang.StringBuilder
dup
ldc "Not Found ! adding to the classloader "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
23: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.ExtensionDependency.debug:(Ljava/lang/String;)V
25: aload 1
aload 5
invokevirtual sun.misc.Launcher$ExtClassLoader.addExtURL:(Ljava/net/URL;)V
end local 7 end local 6 end local 5 end local 4 26: StackMap locals: sun.misc.ExtensionDependency sun.misc.Launcher$ExtClassLoader java.io.File[] int
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
27: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 end local 2 28: goto 34
StackMap locals: sun.misc.ExtensionDependency sun.misc.Launcher$ExtClassLoader
StackMap stack: java.net.MalformedURLException
29: astore 2
start local 2 30: aload 2
invokevirtual java.net.MalformedURLException.printStackTrace:()V
end local 2 31: goto 34
32: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 33: aload 2
invokevirtual java.io.IOException.printStackTrace:()V
end local 2 34: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/misc/ExtensionDependency;
0 35 1 cl Lsun/misc/Launcher$ExtClassLoader;
1 28 2 installedExts [Ljava/io/File;
2 28 3 i I
4 26 4 instFile Ljava/io/File;
6 26 5 instURL Ljava/net/URL;
8 26 6 urls [Ljava/net/URL;
9 26 7 found Z
10 21 8 j I
30 31 2 e Ljava/net/MalformedURLException;
33 34 2 e Ljava/io/IOException;
Exception table:
from to target type
0 28 29 Class java.net.MalformedURLException
0 28 32 Class java.io.IOException
MethodParameters:
Name Flags
cl
private static void debug(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
private void debugException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/misc/ExtensionDependency;
0 1 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e
}
SourceFile: "ExtensionDependency.java"
NestMembers:
sun.misc.ExtensionDependency$1 sun.misc.ExtensionDependency$2 sun.misc.ExtensionDependency$3 sun.misc.ExtensionDependency$4
InnerClasses:
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
sun.misc.ExtensionDependency$1
sun.misc.ExtensionDependency$2
sun.misc.ExtensionDependency$3
sun.misc.ExtensionDependency$4
ExtClassLoader = sun.misc.Launcher$ExtClassLoader of sun.misc.Launcher