public class org.apache.tomcat.util.scan.StandardJarScanner implements org.apache.tomcat.JarScanner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.scan.StandardJarScanner
super_class: java.lang.Object
{
private final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x0012) ACC_PRIVATE, 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 final java.util.Set<java.lang.ClassLoader> CLASSLOADER_HIERARCHY;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/ClassLoader;>;
private boolean scanClassPath;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean scanManifest;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean scanAllFiles;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean scanAllDirectories;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean scanBootstrapClassPath;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.apache.tomcat.JarScanFilter jarScanFilter;
descriptor: Lorg/apache/tomcat/JarScanFilter;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: ldc "org.apache.tomcat.util.scan"
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 0
start local 0 2: ldc Lorg/apache/tomcat/util/scan/StandardJarScanner;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 3: goto 6
4: StackMap locals: java.util.Set java.lang.ClassLoader
StackMap stack:
aload 0
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
5: aload 1
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 1
6: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
7: aload 0
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic org.apache.tomcat.util.scan.StandardJarScanner.CLASSLOADER_HIERARCHY:Ljava/util/Set;
end local 1 end local 0 8: return
LocalVariableTable:
Start End Slot Name Signature
2 8 0 cls Ljava/util/Set<Ljava/lang/ClassLoader;>;
3 8 1 cl Ljava/lang/ClassLoader;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc Lorg/apache/tomcat/util/scan/StandardJarScanner;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
2: aload 0
iconst_1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanClassPath:Z
3: aload 0
iconst_1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanManifest:Z
4: aload 0
iconst_0
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllFiles:Z
5: aload 0
iconst_1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllDirectories:Z
6: aload 0
iconst_0
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanBootstrapClassPath:Z
7: aload 0
new org.apache.tomcat.util.scan.StandardJarScanFilter
dup
invokespecial org.apache.tomcat.util.scan.StandardJarScanFilter.<init>:()V
putfield org.apache.tomcat.util.scan.StandardJarScanner.jarScanFilter:Lorg/apache/tomcat/JarScanFilter;
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public boolean isScanClassPath();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.scanClassPath:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setScanClassPath(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanClassPath:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 scanClassPath Z
MethodParameters:
Name Flags
scanClassPath
public boolean isScanManifest();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.scanManifest:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setScanManifest(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanManifest:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 scanManifest Z
MethodParameters:
Name Flags
scanManifest
public boolean isScanAllFiles();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllFiles:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setScanAllFiles(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllFiles:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 scanAllFiles Z
MethodParameters:
Name Flags
scanAllFiles
public boolean isScanAllDirectories();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllDirectories:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setScanAllDirectories(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanAllDirectories:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 scanAllDirectories Z
MethodParameters:
Name Flags
scanAllDirectories
public boolean isScanBootstrapClassPath();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.scanBootstrapClassPath:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setScanBootstrapClassPath(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.scanBootstrapClassPath:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 scanBootstrapClassPath Z
MethodParameters:
Name Flags
scanBootstrapClassPath
public org.apache.tomcat.JarScanFilter getJarScanFilter();
descriptor: ()Lorg/apache/tomcat/JarScanFilter;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.jarScanFilter:Lorg/apache/tomcat/JarScanFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
public void setJarScanFilter(org.apache.tomcat.JarScanFilter);
descriptor: (Lorg/apache/tomcat/JarScanFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.tomcat.util.scan.StandardJarScanner.jarScanFilter:Lorg/apache/tomcat/JarScanFilter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 2 1 jarScanFilter Lorg/apache/tomcat/JarScanFilter;
MethodParameters:
Name Flags
jarScanFilter
public void scan(org.apache.tomcat.JarScanType, jakarta.servlet.ServletContext, org.apache.tomcat.JarScannerCallback);
descriptor: (Lorg/apache/tomcat/JarScanType;Ljakarta/servlet/ServletContext;Lorg/apache/tomcat/JarScannerCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 2
1: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.webinflibStart"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.jarScanFilter:Lorg/apache/tomcat/JarScanFilter;
invokeinterface org.apache.tomcat.JarScanFilter.isSkipAll:()Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 5: aload 2
ldc "/WEB-INF/lib/"
invokeinterface jakarta.servlet.ServletContext.getResourcePaths:(Ljava/lang/String;)Ljava/util/Set;
astore 5
start local 5 6: aload 5
ifnull 27
7: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 26
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 9: aload 6
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 24
10: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.getJarScanFilter:()Lorg/apache/tomcat/JarScanFilter;
aload 1
11: aload 6
aload 6
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
12: invokeinterface org.apache.tomcat.JarScanFilter.check:(Lorg/apache/tomcat/JarScanType;Ljava/lang/String;)Z
13: ifeq 24
14: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 16
15: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.webinflibJarScan"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
16: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set java.lang.String java.util.Iterator
StackMap stack:
aconst_null
astore 8
start local 8 17: aload 2
aload 6
invokeinterface jakarta.servlet.ServletContext.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 8
18: aload 4
aload 8
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
19: aload 0
aload 1
aload 3
aload 8
aload 6
iconst_1
aconst_null
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.process:(Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/net/URL;Ljava/lang/String;ZLjava/util/Deque;)V
20: goto 26
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set java.lang.String java.util.Iterator java.net.URL
StackMap stack: java.io.IOException
21: astore 9
start local 9 22: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.webinflibFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
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.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 9 end local 8 23: goto 26
24: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 26
25: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.webinflibJarNoScan"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
end local 6 26: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
27: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set
StackMap stack:
aload 2
ldc "/WEB-INF/classes"
invokeinterface jakarta.servlet.ServletContext.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 6
start local 6 28: aload 6
ifnull 39
29: aload 4
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
30: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanAllDirectories:()Z
ifeq 39
31: aload 2
ldc "/WEB-INF/classes/META-INF"
invokeinterface jakarta.servlet.ServletContext.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 7
start local 7 32: aload 7
ifnull 39
33: aload 3
invokeinterface org.apache.tomcat.JarScannerCallback.scanWebInfClasses:()V
34: goto 39
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set java.net.URL java.net.URL
StackMap stack: java.io.IOException
35: astore 8
start local 8 36: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.webinfclassesFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 end local 7 end local 6 37: goto 39
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType jakarta.servlet.ServletContext org.apache.tomcat.JarScannerCallback java.util.Set java.util.Set
StackMap stack: java.net.MalformedURLException
38: pop
39: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanClassPath:()Z
ifeq 41
40: aload 0
aload 1
aload 2
aload 3
aload 4
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath:(Lorg/apache/tomcat/JarScanType;Ljakarta/servlet/ServletContext;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;)V
41: StackMap locals:
StackMap stack:
return
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 42 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 42 1 scanType Lorg/apache/tomcat/JarScanType;
0 42 2 context Ljakarta/servlet/ServletContext;
0 42 3 callback Lorg/apache/tomcat/JarScannerCallback;
5 42 4 processedURLs Ljava/util/Set<Ljava/net/URL;>;
6 42 5 dirList Ljava/util/Set<Ljava/lang/String;>;
9 26 6 path Ljava/lang/String;
17 23 8 url Ljava/net/URL;
22 23 9 e Ljava/io/IOException;
28 37 6 webInfURL Ljava/net/URL;
32 37 7 url Ljava/net/URL;
36 37 8 e Ljava/io/IOException;
Exception table:
from to target type
17 20 21 Class java.io.IOException
33 34 35 Class java.io.IOException
27 37 38 Class java.net.MalformedURLException
MethodParameters:
Name Flags
scanType
context
callback
protected void doScanClassPath(org.apache.tomcat.JarScanType, jakarta.servlet.ServletContext, org.apache.tomcat.JarScannerCallback, java.util.Set<java.net.URL>);
descriptor: (Lorg/apache/tomcat/JarScanType;Ljakarta/servlet/ServletContext;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 2
1: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.classloaderStart"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 3: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanBootstrapClassPath:()Z
ifne 5
4: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 5
5: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 2
invokeinterface jakarta.servlet.ServletContext.getClassLoader:()Ljava/lang/ClassLoader;
astore 6
start local 6 6: iconst_1
istore 7
start local 7 7: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 8
start local 8 8: goto 17
9: StackMap locals: java.lang.ClassLoader int java.util.Deque
StackMap stack:
aload 6
instanceof java.net.URLClassLoader
ifeq 16
10: iload 7
ifeq 12
11: aload 6
invokestatic org.apache.tomcat.util.scan.StandardJarScanner.isWebappClassLoader:(Ljava/lang/ClassLoader;)Z
istore 7
12: StackMap locals:
StackMap stack:
aload 8
13: aload 6
checkcast java.net.URLClassLoader
invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
14: invokeinterface java.util.Deque.addAll:(Ljava/util/Collection;)Z
pop
15: aload 0
aload 1
aload 3
aload 4
iload 7
aload 8
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.processURLs:(Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;ZLjava/util/Deque;)V
16: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 6
17: StackMap locals:
StackMap stack:
aload 6
ifnull 18
aload 6
aload 5
if_acmpne 9
18: StackMap locals:
StackMap stack:
invokestatic org.apache.tomcat.util.compat.JreCompat.isJre9Available:()Z
ifeq 22
19: aload 0
aload 8
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.addClassPath:(Ljava/util/Deque;)V
20: invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
aload 8
invokevirtual org.apache.tomcat.util.compat.JreCompat.addBootModulePath:(Ljava/util/Deque;)V
21: aload 0
aload 1
aload 3
aload 4
iconst_0
aload 8
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.processURLs:(Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;ZLjava/util/Deque;)V
22: StackMap locals:
StackMap stack:
return
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 23 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 23 1 scanType Lorg/apache/tomcat/JarScanType;
0 23 2 context Ljakarta/servlet/ServletContext;
0 23 3 callback Lorg/apache/tomcat/JarScannerCallback;
0 23 4 processedURLs Ljava/util/Set<Ljava/net/URL;>;
3 23 5 stopLoader Ljava/lang/ClassLoader;
6 23 6 classLoader Ljava/lang/ClassLoader;
7 23 7 isWebapp Z
8 23 8 classPathUrlsToProcess Ljava/util/Deque<Ljava/net/URL;>;
Signature: (Lorg/apache/tomcat/JarScanType;Ljakarta/servlet/ServletContext;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
scanType
context
callback
processedURLs
protected void processURLs(org.apache.tomcat.JarScanType, org.apache.tomcat.JarScannerCallback, java.util.Set<java.net.URL>, boolean, java.util.Deque<java.net.URL>);
descriptor: (Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set;ZLjava/util/Deque;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.jarScanFilter:Lorg/apache/tomcat/JarScanFilter;
invokeinterface org.apache.tomcat.JarScanFilter.isSkipAll:()Z
ifeq 23
1: return
2: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
checkcast java.net.URL
astore 6
start local 6 3: aload 3
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
4: goto 23
5: StackMap locals: java.net.URL
StackMap stack:
new org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry
dup
aload 6
invokespecial org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry.<init>:(Ljava/net/URL;)V
astore 7
start local 7 6: aload 7
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry.isJar:()Z
ifne 9
7: aload 1
getstatic org.apache.tomcat.JarScanType.PLUGGABILITY:Lorg/apache/tomcat/JarScanType;
if_acmpeq 9
8: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanAllDirectories:()Z
ifeq 21
9: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry
StackMap stack:
aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.getJarScanFilter:()Lorg/apache/tomcat/JarScanFilter;
aload 1
10: aload 7
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry.getName:()Ljava/lang/String;
11: invokeinterface org.apache.tomcat.JarScanFilter.check:(Lorg/apache/tomcat/JarScanType;Ljava/lang/String;)Z
12: ifeq 21
13: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 15
14: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.classloaderJarScan"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 3
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
16: aload 0
aload 1
aload 2
aload 6
aconst_null
iload 4
aload 5
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.process:(Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/net/URL;Ljava/lang/String;ZLjava/util/Deque;)V
17: goto 23
StackMap locals:
StackMap stack: java.io.IOException
18: astore 8
start local 8 19: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.classloaderFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 20: goto 23
21: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 23
22: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.classloaderJarNoScan"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
end local 7 end local 6 23: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 2
24: return
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 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 25 1 scanType Lorg/apache/tomcat/JarScanType;
0 25 2 callback Lorg/apache/tomcat/JarScannerCallback;
0 25 3 processedURLs Ljava/util/Set<Ljava/net/URL;>;
0 25 4 isWebapp Z
0 25 5 classPathUrlsToProcess Ljava/util/Deque<Ljava/net/URL;>;
3 23 6 url Ljava/net/URL;
6 23 7 cpe Lorg/apache/tomcat/util/scan/StandardJarScanner$ClassPathEntry;
19 20 8 ioe Ljava/io/IOException;
Exception table:
from to target type
15 17 18 Class java.io.IOException
Signature: (Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/util/Set<Ljava/net/URL;>;ZLjava/util/Deque<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
scanType
callback
processedURLs
isWebapp
classPathUrlsToProcess
protected void addClassPath(java.util.Deque<java.net.URL>);
descriptor: (Ljava/util/Deque;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: ldc "java.class.path"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual java.lang.String.length:()I
ifne 3
2: StackMap locals: java.lang.String
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 2
getstatic java.io.File.pathSeparator:Ljava/lang/String;
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 3
start local 3 4: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 12
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner java.util.Deque java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: new java.io.File
dup
aload 4
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 8
start local 8 7: aload 1
aload 8
invokevirtual java.io.File.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
8: goto 11
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner java.util.Deque java.lang.String java.lang.String[] java.lang.String int int java.lang.String[] java.io.File
StackMap stack: java.net.MalformedURLException
9: astore 9
start local 9 10: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.classPath.badEntry"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
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.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 9 end local 8 end local 4 11: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner java.util.Deque java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 6
if_icmplt 5
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 14 1 classPathUrlsToProcess Ljava/util/Deque<Ljava/net/URL;>;
1 14 2 classPath Ljava/lang/String;
4 14 3 classPathEntries [Ljava/lang/String;
6 11 4 classPathEntry Ljava/lang/String;
7 11 8 f Ljava/io/File;
10 11 9 e Ljava/net/MalformedURLException;
Exception table:
from to target type
7 8 9 Class java.net.MalformedURLException
Signature: (Ljava/util/Deque<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
classPathUrlsToProcess
private static boolean isWebappClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.scan.StandardJarScanner.CLASSLOADER_HIERARCHY:Ljava/util/Set;
aload 0
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 classLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
classLoader
protected void process(org.apache.tomcat.JarScanType, org.apache.tomcat.JarScannerCallback, java.net.URL, java.lang.String, boolean, java.util.Deque<java.net.URL>);
descriptor: (Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/net/URL;Ljava/lang/String;ZLjava/util/Deque;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=12, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 2
1: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.jarUrlStart"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
ldc "jar"
aload 3
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
aload 3
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 14
3: StackMap locals:
StackMap stack:
aconst_null
astore 7
aconst_null
astore 8
4: aload 3
invokestatic org.apache.tomcat.util.scan.JarFactory.newInstance:(Ljava/net/URL;)Lorg/apache/tomcat/Jar;
astore 9
start local 9 5: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanManifest:()Z
ifeq 7
6: aload 0
aload 9
iload 5
aload 6
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.processManifest:(Lorg/apache/tomcat/Jar;ZLjava/util/Deque;)V
7: StackMap locals: java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar
StackMap stack:
aload 2
aload 9
aload 4
iload 5
invokeinterface org.apache.tomcat.JarScannerCallback.scan:(Lorg/apache/tomcat/Jar;Ljava/lang/String;Z)V
8: aload 9
ifnull 42
aload 9
invokeinterface org.apache.tomcat.Jar.close:()V
goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 7
aload 9
ifnull 10
aload 9
invokeinterface org.apache.tomcat.Jar.close:()V
end local 9 StackMap locals:
StackMap stack:
10: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 8
aload 7
ifnonnull 12
aload 8
astore 7
goto 13
StackMap locals:
StackMap stack:
12: aload 7
aload 8
if_acmpeq 13
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 7
athrow
14: StackMap locals:
StackMap stack:
ldc "file"
aload 3
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
15: new java.io.File
dup
aload 3
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
astore 7
start local 7 16: aload 7
invokevirtual java.io.File.isFile:()Z
ifeq 29
aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanAllFiles:()Z
ifeq 29
17: aload 7
invokestatic org.apache.tomcat.util.buf.UriUtil.buildJarUrl:(Ljava/io/File;)Ljava/net/URL;
astore 8
start local 8 18: aconst_null
astore 9
aconst_null
astore 10
19: aload 8
invokestatic org.apache.tomcat.util.scan.JarFactory.newInstance:(Ljava/net/URL;)Lorg/apache/tomcat/Jar;
astore 11
start local 11 20: aload 0
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.isScanManifest:()Z
ifeq 22
21: aload 0
aload 11
iload 5
aload 6
invokevirtual org.apache.tomcat.util.scan.StandardJarScanner.processManifest:(Lorg/apache/tomcat/Jar;ZLjava/util/Deque;)V
22: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType org.apache.tomcat.JarScannerCallback java.net.URL java.lang.String int java.util.Deque java.io.File java.net.URL java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar
StackMap stack:
aload 2
aload 11
aload 4
iload 5
invokeinterface org.apache.tomcat.JarScannerCallback.scan:(Lorg/apache/tomcat/Jar;Ljava/lang/String;Z)V
23: aload 11
ifnull 42
aload 11
invokeinterface org.apache.tomcat.Jar.close:()V
goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 9
aload 11
ifnull 25
aload 11
invokeinterface org.apache.tomcat.Jar.close:()V
end local 11 StackMap locals:
StackMap stack:
25: aload 9
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 10
aload 9
ifnonnull 27
aload 10
astore 9
goto 28
StackMap locals:
StackMap stack:
27: aload 9
aload 10
if_acmpeq 28
aload 9
aload 10
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 9
athrow
end local 8 29: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.io.File.isDirectory:()Z
ifeq 42
30: aload 1
getstatic org.apache.tomcat.JarScanType.PLUGGABILITY:Lorg/apache/tomcat/JarScanType;
if_acmpne 33
31: aload 2
aload 7
aload 4
iload 5
invokeinterface org.apache.tomcat.JarScannerCallback.scan:(Ljava/io/File;Ljava/lang/String;Z)V
32: goto 42
33: StackMap locals:
StackMap stack:
new java.io.File
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 7
invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "META-INF"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 8
start local 8 34: aload 8
invokevirtual java.io.File.isDirectory:()Z
ifeq 42
35: aload 2
aload 7
aload 4
iload 5
invokeinterface org.apache.tomcat.JarScannerCallback.scan:(Ljava/io/File;Ljava/lang/String;Z)V
end local 8 36: goto 42
end local 7 StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.JarScanType org.apache.tomcat.JarScannerCallback java.net.URL java.lang.String int java.util.Deque
StackMap stack: java.lang.Throwable
37: astore 8
start local 8 38: aload 8
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
39: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
astore 9
start local 9 40: aload 9
aload 8
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
41: aload 9
athrow
end local 9 end local 8 42: StackMap locals:
StackMap stack:
return
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 43 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 43 1 scanType Lorg/apache/tomcat/JarScanType;
0 43 2 callback Lorg/apache/tomcat/JarScannerCallback;
0 43 3 url Ljava/net/URL;
0 43 4 webappPath Ljava/lang/String;
0 43 5 isWebapp Z
0 43 6 classPathUrlsToProcess Ljava/util/Deque<Ljava/net/URL;>;
5 10 9 jar Lorg/apache/tomcat/Jar;
16 37 7 f Ljava/io/File;
18 29 8 jarURL Ljava/net/URL;
20 25 11 jar Lorg/apache/tomcat/Jar;
34 36 8 metainf Ljava/io/File;
38 42 8 t Ljava/lang/Throwable;
40 42 9 ioe Ljava/io/IOException;
Exception table:
from to target type
5 8 9 any
4 11 11 any
20 23 24 any
19 26 26 any
15 36 37 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
Signature: (Lorg/apache/tomcat/JarScanType;Lorg/apache/tomcat/JarScannerCallback;Ljava/net/URL;Ljava/lang/String;ZLjava/util/Deque<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
scanType
callback
url
webappPath
isWebapp
classPathUrlsToProcess
private void processManifest(org.apache.tomcat.Jar, boolean, java.util.Deque<java.net.URL>);
descriptor: (Lorg/apache/tomcat/Jar;ZLjava/util/Deque;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 1
aload 3
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.apache.tomcat.Jar.getManifest:()Ljava/util/jar/Manifest;
astore 4
start local 4 3: aload 4
ifnull 26
4: aload 4
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 5
start local 5 5: aload 5
ldc "Class-Path"
invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 6: aload 6
ifnonnull 8
7: return
8: StackMap locals: java.util.jar.Manifest java.util.jar.Attributes java.lang.String
StackMap stack:
aload 6
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 7
start local 7 9: aload 7
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 25
StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.Jar int java.util.Deque java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
10: aload 11
iload 9
aaload
astore 8
start local 8 11: aload 8
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 8
12: aload 8
invokevirtual java.lang.String.length:()I
ifne 14
13: goto 24
14: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.Jar int java.util.Deque java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String[] java.lang.String int int java.lang.String[]
StackMap stack:
aload 1
invokeinterface org.apache.tomcat.Jar.getJarFileURL:()Ljava/net/URL;
astore 12
start local 12 15: aload 12
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
astore 14
start local 14 16: aload 14
aload 8
invokevirtual java.net.URI.resolve:(Ljava/lang/String;)Ljava/net/URI;
astore 15
start local 15 17: aload 15
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
astore 13
end local 15 end local 14 start local 13 18: goto 23
end local 13 StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.Jar int java.util.Deque java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String[] java.lang.String int int java.lang.String[] java.net.URL
StackMap stack: java.lang.Exception
19: astore 14
start local 14 20: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 24
21: aload 0
getfield org.apache.tomcat.util.scan.StandardJarScanner.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.tomcat.util.scan.StandardJarScanner.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "jarScan.invalidUri"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 14
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
22: goto 24
end local 14 start local 13 23: StackMap locals: java.net.URL
StackMap stack:
aload 3
aload 13
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 12 end local 8 24: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.Jar int java.util.Deque java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
25: iload 9
iload 10
if_icmplt 10
end local 7 end local 6 end local 5 26: StackMap locals: org.apache.tomcat.util.scan.StandardJarScanner org.apache.tomcat.Jar int java.util.Deque java.util.jar.Manifest
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/apache/tomcat/util/scan/StandardJarScanner;
0 27 1 jar Lorg/apache/tomcat/Jar;
0 27 2 isWebapp Z
0 27 3 classPathUrlsToProcess Ljava/util/Deque<Ljava/net/URL;>;
3 27 4 manifest Ljava/util/jar/Manifest;
5 26 5 attributes Ljava/util/jar/Attributes;
6 26 6 classPathAttribute Ljava/lang/String;
9 26 7 classPathEntries [Ljava/lang/String;
11 24 8 classPathEntry Ljava/lang/String;
15 24 12 jarURL Ljava/net/URL;
18 19 13 classPathEntryURL Ljava/net/URL;
23 24 13 classPathEntryURL Ljava/net/URL;
16 18 14 jarURI Ljava/net/URI;
17 18 15 classPathEntryURI Ljava/net/URI;
20 23 14 e Ljava/lang/Exception;
Exception table:
from to target type
15 18 19 Class java.lang.Exception
Exceptions:
throws java.io.IOException
Signature: (Lorg/apache/tomcat/Jar;ZLjava/util/Deque<Ljava/net/URL;>;)V
MethodParameters:
Name Flags
jar
isWebapp
classPathUrlsToProcess
}
SourceFile: "StandardJarScanner.java"
NestMembers:
org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry
InnerClasses:
private ClassPathEntry = org.apache.tomcat.util.scan.StandardJarScanner$ClassPathEntry of org.apache.tomcat.util.scan.StandardJarScanner