public final class org.apache.catalina.util.ExtensionValidator
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.catalina.util.ExtensionValidator
super_class: java.lang.Object
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile java.util.List<org.apache.catalina.util.Extension> containerAvailableExtensions;
descriptor: Ljava/util/List;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/List<Lorg/apache/catalina/util/Extension;>;
private static final java.util.List<org.apache.catalina.util.ManifestResource> containerManifestResources;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=0
0: ldc Lorg/apache/catalina/util/ExtensionValidator;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.util.ExtensionValidator.log:Lorg/apache/juli/logging/Log;
1: ldc "org.apache.catalina.util"
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
2: putstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
3: aconst_null
putstatic org.apache.catalina.util.ExtensionValidator.containerAvailableExtensions:Ljava/util/List;
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
5: putstatic org.apache.catalina.util.ExtensionValidator.containerManifestResources:Ljava/util/List;
6: ldc "java.class.path"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 7: new java.util.StringTokenizer
dup
aload 0
8: getstatic java.io.File.pathSeparator:Ljava/lang/String;
9: invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 1
start local 1 10: goto 23
11: StackMap locals: java.lang.String java.util.StringTokenizer
StackMap stack:
aload 1
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 2
start local 2 12: aload 2
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 23
13: new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 14: aload 3
invokevirtual java.io.File.isFile:()Z
ifeq 23
15: aload 3
invokestatic org.apache.catalina.util.ExtensionValidator.addSystemResource:(Ljava/io/File;)V
16: goto 23
StackMap locals: java.lang.String java.util.StringTokenizer java.lang.String java.io.File
StackMap stack: java.io.IOException
17: astore 4
start local 4 18: getstatic org.apache.catalina.util.ExtensionValidator.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
19: ldc "extensionValidator.failload"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
20: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
21: aload 4
22: invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 end local 3 end local 2 23: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 11
24: ldc "java.ext.dirs"
invokestatic org.apache.catalina.util.ExtensionValidator.addFolderList:(Ljava/lang/String;)V
end local 1 end local 0 25: return
LocalVariableTable:
Start End Slot Name Signature
7 25 0 systemClasspath Ljava/lang/String;
10 25 1 strTok Ljava/util/StringTokenizer;
12 23 2 classpathItem Ljava/lang/String;
14 23 3 item Ljava/io/File;
18 23 4 e Ljava/io/IOException;
Exception table:
from to target type
15 16 17 Class java.io.IOException
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 Lorg/apache/catalina/util/ExtensionValidator;
public static synchronized boolean validateApplication(org.apache.catalina.WebResourceRoot, org.apache.catalina.Context);
descriptor: (Lorg/apache/catalina/WebResourceRoot;Lorg/apache/catalina/Context;)Z
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.apache.catalina.Context.getName:()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 0
ldc "/META-INF/MANIFEST.MF"
invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
astore 4
start local 4 3: aload 4
invokeinterface org.apache.catalina.WebResource.isFile:()Z
ifeq 18
4: aconst_null
astore 5
aconst_null
astore 6
5: aload 4
invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
astore 7
start local 7 6: new java.util.jar.Manifest
dup
aload 7
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 8
start local 8 7: new org.apache.catalina.util.ManifestResource
dup
8: getstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "extensionValidator.web-application-manifest"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
9: aload 8
iconst_2
10: invokespecial org.apache.catalina.util.ManifestResource.<init>:(Ljava/lang/String;Ljava/util/jar/Manifest;I)V
astore 9
start local 9 11: aload 3
aload 9
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 12: aload 7
ifnull 18
aload 7
invokevirtual java.io.InputStream.close:()V
goto 18
StackMap locals: org.apache.catalina.WebResourceRoot org.apache.catalina.Context java.lang.String java.util.List org.apache.catalina.WebResource java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
13: astore 5
aload 7
ifnull 14
aload 7
invokevirtual java.io.InputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
14: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 6
aload 5
ifnonnull 16
aload 6
astore 5
goto 17
StackMap locals:
StackMap stack:
16: aload 5
aload 6
if_acmpeq 17
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 5
athrow
18: StackMap locals:
StackMap stack:
aload 0
ldc "/META-INF/MANIFEST.MF"
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
19: astore 5
start local 5 20: aload 5
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 31
StackMap locals: org.apache.catalina.WebResourceRoot org.apache.catalina.Context java.lang.String java.util.List org.apache.catalina.WebResource org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
StackMap stack:
21: aload 9
iload 7
aaload
astore 6
start local 6 22: aload 6
invokeinterface org.apache.catalina.WebResource.isFile:()Z
ifeq 30
23: aload 6
invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
astore 10
start local 10 24: aload 6
invokeinterface org.apache.catalina.WebResource.getManifest:()Ljava/util/jar/Manifest;
astore 11
start local 11 25: aload 11
ifnull 30
26: new org.apache.catalina.util.ManifestResource
dup
aload 10
27: aload 11
iconst_3
28: invokespecial org.apache.catalina.util.ManifestResource.<init>:(Ljava/lang/String;Ljava/util/jar/Manifest;I)V
astore 12
start local 12 29: aload 3
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 10 end local 6 30: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
31: iload 7
iload 8
if_icmplt 21
32: aload 2
aload 3
invokestatic org.apache.catalina.util.ExtensionValidator.validateManifestResources:(Ljava/lang/String;Ljava/util/List;)Z
ireturn
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 33 0 resources Lorg/apache/catalina/WebResourceRoot;
0 33 1 context Lorg/apache/catalina/Context;
1 33 2 appName Ljava/lang/String;
2 33 3 appManifestResources Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;
3 33 4 resource Lorg/apache/catalina/WebResource;
6 14 7 inputStream Ljava/io/InputStream;
7 12 8 manifest Ljava/util/jar/Manifest;
11 12 9 mre Lorg/apache/catalina/util/ManifestResource;
20 33 5 manifestResources [Lorg/apache/catalina/WebResource;
22 30 6 manifestResource Lorg/apache/catalina/WebResource;
24 30 10 jarName Ljava/lang/String;
25 30 11 jmanifest Ljava/util/jar/Manifest;
29 30 12 mre Lorg/apache/catalina/util/ManifestResource;
Exception table:
from to target type
6 12 13 any
5 15 15 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
resources
context
public static void addSystemResource(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new java.io.FileInputStream
dup
aload 0
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 3
start local 3 2: aload 3
invokestatic org.apache.catalina.util.ExtensionValidator.getManifest:(Ljava/io/InputStream;)Ljava/util/jar/Manifest;
astore 4
start local 4 3: aload 4
ifnull 8
4: new org.apache.catalina.util.ManifestResource
dup
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 4
5: iconst_1
6: invokespecial org.apache.catalina.util.ManifestResource.<init>:(Ljava/lang/String;Ljava/util/jar/Manifest;I)V
astore 5
start local 5 7: getstatic org.apache.catalina.util.ExtensionValidator.containerManifestResources:Ljava/util/List;
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 8: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 3
ifnull 14
aload 3
invokevirtual java.io.InputStream.close:()V
goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 1
aload 3
ifnull 10
aload 3
invokevirtual java.io.InputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
10: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
aload 1
ifnonnull 12
aload 2
astore 1
goto 13
StackMap locals:
StackMap stack:
12: aload 1
aload 2
if_acmpeq 13
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 1
athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 jarFile Ljava/io/File;
2 10 3 is Ljava/io/InputStream;
3 8 4 manifest Ljava/util/jar/Manifest;
7 8 5 mre Lorg/apache/catalina/util/ManifestResource;
Exception table:
from to target type
2 8 9 any
1 11 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
jarFile
private static boolean validateManifestResources(java.lang.String, java.util.List<org.apache.catalina.util.ManifestResource>);
descriptor: (Ljava/lang/String;Ljava/util/List;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=13, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 41
StackMap locals: java.lang.String java.util.List int int java.util.List top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.ManifestResource
astore 5
start local 5 5: aload 5
invokevirtual org.apache.catalina.util.ManifestResource.getRequiredExtensions:()Ljava/util/ArrayList;
astore 7
start local 7 6: aload 7
ifnonnull 8
7: goto 41
8: StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList
StackMap stack:
aload 4
ifnonnull 10
9: aload 1
invokestatic org.apache.catalina.util.ExtensionValidator.buildAvailableExtensionsList:(Ljava/util/List;)Ljava/util/List;
astore 4
10: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.util.ExtensionValidator.containerAvailableExtensions:Ljava/util/List;
ifnonnull 13
11: getstatic org.apache.catalina.util.ExtensionValidator.containerManifestResources:Ljava/util/List;
invokestatic org.apache.catalina.util.ExtensionValidator.buildAvailableExtensionsList:(Ljava/util/List;)Ljava/util/List;
12: putstatic org.apache.catalina.util.ExtensionValidator.containerAvailableExtensions:Ljava/util/List;
13: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 9
goto 40
StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList top java.util.Iterator
StackMap stack:
14: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.Extension
astore 8
start local 8 15: iconst_0
istore 10
start local 10 16: aload 4
ifnull 24
17: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 23
StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList org.apache.catalina.util.Extension java.util.Iterator int top java.util.Iterator
StackMap stack:
18: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.Extension
astore 11
start local 11 19: aload 11
aload 8
invokevirtual org.apache.catalina.util.Extension.isCompatibleWith:(Lorg/apache/catalina/util/Extension;)Z
ifeq 23
20: aload 8
iconst_1
invokevirtual org.apache.catalina.util.Extension.setFulfilled:(Z)V
21: iconst_1
istore 10
22: goto 24
end local 11 23: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
24: StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList org.apache.catalina.util.Extension java.util.Iterator int
StackMap stack:
iload 10
ifne 32
getstatic org.apache.catalina.util.ExtensionValidator.containerAvailableExtensions:Ljava/util/List;
ifnull 32
25: getstatic org.apache.catalina.util.ExtensionValidator.containerAvailableExtensions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 31
StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList org.apache.catalina.util.Extension java.util.Iterator int top java.util.Iterator
StackMap stack:
26: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.Extension
astore 11
start local 11 27: aload 11
aload 8
invokevirtual org.apache.catalina.util.Extension.isCompatibleWith:(Lorg/apache/catalina/util/Extension;)Z
ifeq 31
28: aload 8
iconst_1
invokevirtual org.apache.catalina.util.Extension.setFulfilled:(Z)V
29: iconst_1
istore 10
30: goto 32
end local 11 31: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
32: StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList org.apache.catalina.util.Extension java.util.Iterator int
StackMap stack:
iload 10
ifne 40
33: getstatic org.apache.catalina.util.ExtensionValidator.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
34: ldc "extensionValidator.extension-not-found-error"
iconst_3
anewarray java.lang.Object
dup
iconst_0
35: aload 0
aastore
dup
iconst_1
aload 5
invokevirtual org.apache.catalina.util.ManifestResource.getResourceName:()Ljava/lang/String;
aastore
dup
iconst_2
36: aload 8
invokevirtual org.apache.catalina.util.Extension.getExtensionName:()Ljava/lang/String;
aastore
37: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
38: iconst_0
istore 2
39: iinc 3 1
end local 10 end local 8 40: StackMap locals: java.lang.String java.util.List int int java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 7 end local 5 41: StackMap locals: java.lang.String java.util.List int int java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
42: iload 2
ifne 47
43: getstatic org.apache.catalina.util.ExtensionValidator.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
44: ldc "extensionValidator.extension-validation-error"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
45: new java.lang.StringBuilder
dup
iload 3
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
46: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
47: StackMap locals: java.lang.String java.util.List int int java.util.List
StackMap stack:
iload 2
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 appName Ljava/lang/String;
0 48 1 resources Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;
1 48 2 passes Z
2 48 3 failureCount I
3 48 4 availableExtensions Ljava/util/List<Lorg/apache/catalina/util/Extension;>;
5 41 5 mre Lorg/apache/catalina/util/ManifestResource;
6 41 7 requiredList Ljava/util/ArrayList<Lorg/apache/catalina/util/Extension;>;
15 40 8 requiredExt Lorg/apache/catalina/util/Extension;
16 40 10 found Z
19 23 11 targetExt Lorg/apache/catalina/util/Extension;
27 31 11 targetExt Lorg/apache/catalina/util/Extension;
Signature: (Ljava/lang/String;Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;)Z
MethodParameters:
Name Flags
appName
resources
private static java.util.List<org.apache.catalina.util.Extension> buildAvailableExtensionsList(java.util.List<org.apache.catalina.util.ManifestResource>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 13
StackMap locals: java.util.List java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.ManifestResource
astore 2
start local 2 3: aload 2
invokevirtual org.apache.catalina.util.ManifestResource.getAvailableExtensions:()Ljava/util/ArrayList;
astore 4
start local 4 4: aload 4
ifnull 13
5: aload 4
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: java.util.List java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.util.Extension
astore 5
start local 5 7: aload 1
ifnonnull 11
8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
9: aload 1
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: goto 12
11: StackMap locals: java.util.List java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList org.apache.catalina.util.Extension java.util.Iterator
StackMap stack:
aload 1
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 12: StackMap locals: java.util.List java.util.List org.apache.catalina.util.ManifestResource java.util.Iterator java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 4 end local 2 13: StackMap locals: java.util.List java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
14: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 resources Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;
1 15 1 availableList Ljava/util/List<Lorg/apache/catalina/util/Extension;>;
3 13 2 mre Lorg/apache/catalina/util/ManifestResource;
4 13 4 list Ljava/util/ArrayList<Lorg/apache/catalina/util/Extension;>;
7 12 5 ext Lorg/apache/catalina/util/Extension;
Signature: (Ljava/util/List<Lorg/apache/catalina/util/ManifestResource;>;)Ljava/util/List<Lorg/apache/catalina/util/Extension;>;
MethodParameters:
Name Flags
resources
private static java.util.jar.Manifest getManifest(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/util/jar/Manifest;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new java.util.jar.JarInputStream
dup
aload 0
invokespecial java.util.jar.JarInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 3: aload 4
invokevirtual java.util.jar.JarInputStream.getManifest:()Ljava/util/jar/Manifest;
astore 1
4: aload 4
ifnull 10
aload 4
invokevirtual java.util.jar.JarInputStream.close:()V
goto 10
StackMap locals: java.io.InputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.jar.JarInputStream
StackMap stack: java.lang.Throwable
5: astore 2
aload 4
ifnull 6
aload 4
invokevirtual java.util.jar.JarInputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
6: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 3
aload 2
ifnonnull 8
aload 3
astore 2
goto 9
StackMap locals:
StackMap stack:
8: aload 2
aload 3
if_acmpeq 9
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 inStream Ljava/io/InputStream;
1 11 1 manifest Ljava/util/jar/Manifest;
3 6 4 jin Ljava/util/jar/JarInputStream;
Exception table:
from to target type
3 4 5 any
2 7 7 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inStream
private static void addFolderList(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=10, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 21
2: new java.util.StringTokenizer
dup
aload 1
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
3: astore 2
start local 2 4: goto 20
5: StackMap locals: java.lang.String java.util.StringTokenizer
StackMap stack:
new java.io.File
dup
aload 2
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 6: aload 3
invokevirtual java.io.File.isDirectory:()Z
ifne 8
7: goto 20
8: StackMap locals: java.io.File
StackMap stack:
aload 3
invokevirtual java.io.File.listFiles:()[Ljava/io/File;
astore 4
start local 4 9: aload 4
ifnonnull 11
10: goto 20
11: StackMap locals: java.io.File[]
StackMap stack:
aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 19
StackMap locals: java.lang.String java.lang.String java.util.StringTokenizer java.io.File java.io.File[] top int int java.io.File[]
StackMap stack:
12: aload 8
iload 6
aaload
astore 5
start local 5 13: aload 5
invokevirtual java.io.File.getName:()Ljava/lang/String;
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 18
aload 5
invokevirtual java.io.File.isFile:()Z
ifeq 18
14: aload 5
invokestatic org.apache.catalina.util.ExtensionValidator.addSystemResource:(Ljava/io/File;)V
15: goto 18
StackMap locals: java.lang.String java.lang.String java.util.StringTokenizer java.io.File java.io.File[] java.io.File int int java.io.File[]
StackMap stack: java.io.IOException
16: astore 9
start local 9 17: getstatic org.apache.catalina.util.ExtensionValidator.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.util.ExtensionValidator.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "extensionValidator.failload"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 9
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 9 end local 5 18: StackMap locals: java.lang.String java.lang.String java.util.StringTokenizer java.io.File java.io.File[] top int int java.io.File[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
iload 7
if_icmplt 12
end local 4 end local 3 20: StackMap locals: java.lang.String java.lang.String java.util.StringTokenizer
StackMap stack:
aload 2
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 5
end local 2 21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 property Ljava/lang/String;
1 22 1 extensionsDir Ljava/lang/String;
4 21 2 extensionsTok Ljava/util/StringTokenizer;
6 20 3 targetDir Ljava/io/File;
9 20 4 files [Ljava/io/File;
13 18 5 file Ljava/io/File;
17 18 9 e Ljava/io/IOException;
Exception table:
from to target type
14 15 16 Class java.io.IOException
MethodParameters:
Name Flags
property
}
SourceFile: "ExtensionValidator.java"