public class org.apache.catalina.users.MemoryUserDatabase implements org.apache.catalina.UserDatabase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.users.MemoryUserDatabase
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
protected final java.util.Map<java.lang.String, org.apache.catalina.Group> groups;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/Group;>;
protected final java.lang.String id;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected java.lang.String pathname;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected java.lang.String pathnameOld;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected java.lang.String pathnameNew;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected boolean readonly;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected final java.util.Map<java.lang.String, org.apache.catalina.Role> roles;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/Role;>;
protected final java.util.Map<java.lang.String, org.apache.catalina.User> users;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/User;>;
private final java.util.concurrent.locks.ReentrantReadWriteLock dbLock;
descriptor: Ljava/util/concurrent/locks/ReentrantReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock readLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock writeLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long lastModified;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean watchSource;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/users/MemoryUserDatabase;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/catalina/users/MemoryUserDatabase;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokespecial org.apache.catalina.users.MemoryUserDatabase.<init>:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
2: aload 0
ldc "conf/tomcat-users.xml"
putfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
3: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".old"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.catalina.users.MemoryUserDatabase.pathnameOld:Ljava/lang/String;
4: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".new"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.catalina.users.MemoryUserDatabase.pathnameNew:Ljava/lang/String;
5: aload 0
iconst_1
putfield org.apache.catalina.users.MemoryUserDatabase.readonly:Z
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
7: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
8: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield org.apache.catalina.users.MemoryUserDatabase.dbLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
9: aload 0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.dbLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
putfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
10: aload 0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.dbLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
putfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
11: aload 0
lconst_0
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
12: aload 0
iconst_1
putfield org.apache.catalina.users.MemoryUserDatabase.watchSource:Z
13: aload 0
aload 1
putfield org.apache.catalina.users.MemoryUserDatabase.id:Ljava/lang/String;
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 15 1 id Ljava/lang/String;
MethodParameters:
Name Flags
id
public java.util.Iterator<org.apache.catalina.Group> getGroups();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: new java.util.ArrayList
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
Exception table:
from to target type
1 2 4 any
Signature: ()Ljava/util/Iterator<Lorg/apache/catalina/Group;>;
public java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.id:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
public java.lang.String getPathname();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
public void setPathname(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
1: aload 0
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".old"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.catalina.users.MemoryUserDatabase.pathnameOld:Ljava/lang/String;
2: aload 0
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".new"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.catalina.users.MemoryUserDatabase.pathnameNew:Ljava/lang/String;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 4 1 pathname Ljava/lang/String;
MethodParameters:
Name Flags
pathname
public boolean getReadonly();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readonly:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
public void setReadonly(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.catalina.users.MemoryUserDatabase.readonly:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 2 1 readonly Z
MethodParameters:
Name Flags
readonly
public boolean getWatchSource();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.watchSource:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
public void setWatchSource(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.catalina.users.MemoryUserDatabase.watchSource:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 2 1 watchSource Z
MethodParameters:
Name Flags
watchSource
public java.util.Iterator<org.apache.catalina.Role> getRoles();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: new java.util.ArrayList
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
Exception table:
from to target type
1 2 4 any
Signature: ()Ljava/util/Iterator<Lorg/apache/catalina/Role;>;
public java.util.Iterator<org.apache.catalina.User> getUsers();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: new java.util.ArrayList
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 2
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
Exception table:
from to target type
1 2 4 any
Signature: ()Ljava/util/Iterator<Lorg/apache/catalina/User;>;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.save:()V
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
4: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 1
7: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: aload 1
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
Exception table:
from to target type
1 6 6 any
Exceptions:
throws java.lang.Exception
public org.apache.catalina.Group createGroup(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/catalina/Group;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.length:()I
ifne 4
1: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.nullGroup"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
aload 3
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
3: new java.lang.IllegalArgumentException
dup
aload 3
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 4: StackMap locals:
StackMap stack:
new org.apache.catalina.users.MemoryGroup
dup
aload 0
aload 1
aload 2
invokespecial org.apache.catalina.users.MemoryGroup.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;Ljava/lang/String;Ljava/lang/String;)V
astore 3
start local 3 5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
6: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
aload 3
invokevirtual org.apache.catalina.users.MemoryGroup.getGroupname:()Ljava/lang/String;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: goto 11
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String java.lang.String org.apache.catalina.users.MemoryGroup
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
12: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 13 1 groupname Ljava/lang/String;
0 13 2 description Ljava/lang/String;
2 4 3 msg Ljava/lang/String;
5 13 3 group Lorg/apache/catalina/users/MemoryGroup;
Exception table:
from to target type
6 8 8 any
MethodParameters:
Name Flags
groupname
description
public org.apache.catalina.Role createRole(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/catalina/Role;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.length:()I
ifne 4
1: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.nullRole"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
aload 3
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
3: new java.lang.IllegalArgumentException
dup
aload 3
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 4: StackMap locals:
StackMap stack:
new org.apache.catalina.users.MemoryRole
dup
aload 0
aload 1
aload 2
invokespecial org.apache.catalina.users.MemoryRole.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;Ljava/lang/String;Ljava/lang/String;)V
astore 3
start local 3 5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
6: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
aload 3
invokevirtual org.apache.catalina.users.MemoryRole.getRolename:()Ljava/lang/String;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: goto 11
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String java.lang.String org.apache.catalina.users.MemoryRole
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
12: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 13 1 rolename Ljava/lang/String;
0 13 2 description Ljava/lang/String;
2 4 3 msg Ljava/lang/String;
5 13 3 role Lorg/apache/catalina/users/MemoryRole;
Exception table:
from to target type
6 8 8 any
MethodParameters:
Name Flags
rolename
description
public org.apache.catalina.User createUser(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/apache/catalina/User;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.length:()I
ifne 4
1: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.nullUser"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 2: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
aload 4
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
3: new java.lang.IllegalArgumentException
dup
aload 4
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
new org.apache.catalina.users.MemoryUser
dup
aload 0
aload 1
aload 2
aload 3
invokespecial org.apache.catalina.users.MemoryUser.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
astore 4
start local 4 5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
6: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
aload 4
invokevirtual org.apache.catalina.users.MemoryUser.getUsername:()Ljava/lang/String;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: goto 11
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String java.lang.String java.lang.String org.apache.catalina.users.MemoryUser
StackMap stack: java.lang.Throwable
8: astore 5
9: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 5
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
12: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 13 1 username Ljava/lang/String;
0 13 2 password Ljava/lang/String;
0 13 3 fullName Ljava/lang/String;
2 4 4 msg Ljava/lang/String;
5 13 4 user Lorg/apache/catalina/users/MemoryUser;
Exception table:
from to target type
6 8 8 any
MethodParameters:
Name Flags
username
password
fullName
public org.apache.catalina.Group findGroup(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/catalina/Group;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.Group
astore 3
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 3
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 7 1 groupname Ljava/lang/String;
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
groupname
public org.apache.catalina.Role findRole(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/catalina/Role;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.Role
astore 3
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 3
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 7 1 rolename Ljava/lang/String;
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
rolename
public org.apache.catalina.User findUser(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/catalina/User;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.User
astore 3
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: aload 3
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 7 1 username Ljava/lang/String;
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
username
public void open();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
4: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getPathname:()Ljava/lang/String;
astore 1
start local 1 5: aconst_null
astore 2
aconst_null
astore 3
6: invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
aload 1
invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getResource:(Ljava/lang/String;)Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
astore 4
start local 4 7: aload 0
aload 4
invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getLastModified:()J
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
8: new org.apache.tomcat.util.digester.Digester
dup
invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
astore 5
start local 5 9: aload 5
10: ldc "http://apache.org/xml/features/allow-java-encodings"
iconst_1
11: invokevirtual org.apache.tomcat.util.digester.Digester.setFeature:(Ljava/lang/String;Z)V
12: goto 15
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource org.apache.tomcat.util.digester.Digester
StackMap stack: java.lang.Exception
13: astore 6
start local 6 14: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.xmlFeatureEncoding"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 6 15: StackMap locals:
StackMap stack:
aload 5
ldc "tomcat-users/group"
16: new org.apache.catalina.users.MemoryGroupCreationFactory
dup
aload 0
invokespecial org.apache.catalina.users.MemoryGroupCreationFactory.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;)V
iconst_1
17: invokevirtual org.apache.tomcat.util.digester.Digester.addFactoryCreate:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/ObjectCreationFactory;Z)V
18: aload 5
ldc "tomcat-users/role"
19: new org.apache.catalina.users.MemoryRoleCreationFactory
dup
aload 0
invokespecial org.apache.catalina.users.MemoryRoleCreationFactory.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;)V
iconst_1
20: invokevirtual org.apache.tomcat.util.digester.Digester.addFactoryCreate:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/ObjectCreationFactory;Z)V
21: aload 5
ldc "tomcat-users/user"
22: new org.apache.catalina.users.MemoryUserCreationFactory
dup
aload 0
invokespecial org.apache.catalina.users.MemoryUserCreationFactory.<init>:(Lorg/apache/catalina/users/MemoryUserDatabase;)V
iconst_1
23: invokevirtual org.apache.tomcat.util.digester.Digester.addFactoryCreate:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/ObjectCreationFactory;Z)V
24: aload 5
aload 4
invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
invokevirtual org.apache.tomcat.util.digester.Digester.parse:(Ljava/io/InputStream;)Ljava/lang/Object;
pop
end local 5 25: aload 4
ifnull 41
aload 4
invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
goto 41
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource
StackMap stack: java.lang.Throwable
26: astore 2
aload 4
ifnull 27
aload 4
invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
end local 4 StackMap locals:
StackMap stack:
27: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 3
aload 2
ifnonnull 29
aload 3
astore 2
goto 30
StackMap locals:
StackMap stack:
29: aload 2
aload 3
if_acmpeq 30
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 2
athrow
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.lang.String
StackMap stack: java.io.IOException
31: pop
32: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileNotFound"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
goto 41
33: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 34: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
35: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
36: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
37: aload 2
athrow
end local 2 end local 1 38: StackMap locals: org.apache.catalina.users.MemoryUserDatabase
StackMap stack: java.lang.Throwable
astore 7
39: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
40: aload 7
athrow
41: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
42: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
5 38 1 pathName Ljava/lang/String;
7 27 4 resource Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
9 25 5 digester Lorg/apache/tomcat/util/digester/Digester;
14 15 6 e Ljava/lang/Exception;
34 38 2 e Ljava/lang/Exception;
Exception table:
from to target type
9 12 13 Class java.lang.Exception
7 25 26 any
6 28 28 any
5 31 31 Class java.io.IOException
5 31 33 Class java.lang.Exception
1 38 38 any
Exceptions:
throws java.lang.Exception
public void removeGroup(org.apache.catalina.Group);
descriptor: (Lorg/apache/catalina/Group;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getUsers:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 5
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.User
astore 3
start local 3 4: aload 3
aload 1
invokeinterface org.apache.catalina.User.removeGroup:(Lorg/apache/catalina/Group;)V
end local 3 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
aload 1
invokeinterface org.apache.catalina.Group.getGroupname:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 7: goto 11
StackMap locals: org.apache.catalina.users.MemoryUserDatabase org.apache.catalina.Group
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 13 1 group Lorg/apache/catalina/Group;
2 7 2 users Ljava/util/Iterator<Lorg/apache/catalina/User;>;
4 5 3 user Lorg/apache/catalina/User;
Exception table:
from to target type
1 8 8 any
MethodParameters:
Name Flags
group
public void removeRole(org.apache.catalina.Role);
descriptor: (Lorg/apache/catalina/Role;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getGroups:()Ljava/util/Iterator;
astore 2
start local 2 2: goto 5
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.Group
astore 3
start local 3 4: aload 3
aload 1
invokeinterface org.apache.catalina.Group.removeRole:(Lorg/apache/catalina/Role;)V
end local 3 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getUsers:()Ljava/util/Iterator;
astore 3
start local 3 7: goto 10
8: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.User
astore 4
start local 4 9: aload 4
aload 1
invokeinterface org.apache.catalina.User.removeRole:(Lorg/apache/catalina/Role;)V
end local 4 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
aload 1
invokeinterface org.apache.catalina.Role.getRolename:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 end local 2 12: goto 16
StackMap locals: org.apache.catalina.users.MemoryUserDatabase org.apache.catalina.Role
StackMap stack: java.lang.Throwable
13: astore 5
14: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
15: aload 5
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 18 1 role Lorg/apache/catalina/Role;
2 12 2 groups Ljava/util/Iterator<Lorg/apache/catalina/Group;>;
4 5 3 group Lorg/apache/catalina/Group;
7 12 3 users Ljava/util/Iterator<Lorg/apache/catalina/User;>;
9 10 4 user Lorg/apache/catalina/User;
Exception table:
from to target type
1 13 13 any
MethodParameters:
Name Flags
role
public void removeUser(org.apache.catalina.User);
descriptor: (Lorg/apache/catalina/User;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
aload 1
invokeinterface org.apache.catalina.User.getUsername:()Ljava/lang/String;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
0 8 1 user Lorg/apache/catalina/User;
Exception table:
from to target type
1 3 3 any
MethodParameters:
Name Flags
user
public boolean isWriteable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new java.io.File
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.io.File.isAbsolute:()Z
ifne 3
2: new java.io.File
dup
ldc "catalina.base"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 1
3: StackMap locals: java.io.File
StackMap stack:
aload 1
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 2
start local 2 4: aload 2
invokevirtual java.io.File.exists:()Z
ifeq 5
aload 2
invokevirtual java.io.File.isDirectory:()Z
ifeq 5
aload 2
invokevirtual java.io.File.canWrite:()Z
ifeq 5
iconst_1
ireturn
StackMap locals: java.io.File
StackMap stack:
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
1 6 1 file Ljava/io/File;
4 6 2 dir Ljava/io/File;
public void save();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getReadonly:()Z
ifeq 3
1: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.readOnly"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.isWriteable:()Z
ifne 6
4: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.notPersistable"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
5: return
6: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathnameNew:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
start local 1 7: aload 1
invokevirtual java.io.File.isAbsolute:()Z
ifne 9
8: new java.io.File
dup
ldc "catalina.base"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathnameNew:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 1
9: StackMap locals: java.io.File
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
10: aconst_null
astore 2
aconst_null
astore 3
11: new java.io.FileOutputStream
dup
aload 1
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 4
start local 4 12: new java.io.OutputStreamWriter
dup
aload 4
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
astore 5
start local 5 13: new java.io.PrintWriter
dup
aload 5
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
astore 6
start local 6 14: aload 6
ldc "<?xml version='1.0' encoding='utf-8'?>"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
15: aload 6
ldc "<tomcat-users xmlns=\"http://tomcat.apache.org/xml\""
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
16: aload 6
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
17: aload 6
ldc "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
18: aload 6
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
19: aload 6
ldc "xsi:schemaLocation=\"http://tomcat.apache.org/xml tomcat-users.xsd\""
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
20: aload 6
ldc " version=\"1.0\">"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
21: aconst_null
astore 7
start local 7 22: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getRoles:()Ljava/util/Iterator;
astore 7
23: goto 26
24: StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.io.File java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.OutputStreamWriter java.io.PrintWriter java.util.Iterator
StackMap stack:
aload 6
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
25: aload 6
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
27: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getGroups:()Ljava/util/Iterator;
astore 7
28: goto 31
29: StackMap locals:
StackMap stack:
aload 6
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
30: aload 6
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
31: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
32: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getUsers:()Ljava/util/Iterator;
astore 7
33: goto 36
34: StackMap locals:
StackMap stack:
aload 6
ldc " "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
35: aload 6
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.users.MemoryUser
invokevirtual org.apache.catalina.users.MemoryUser.toXml:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
37: aload 6
ldc "</tomcat-users>"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
38: aload 6
invokevirtual java.io.PrintWriter.checkError:()Z
ifeq 42
39: new java.io.IOException
dup
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.writeException"
iconst_1
anewarray java.lang.Object
dup
iconst_0
40: aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
41: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 7 42: StackMap locals:
StackMap stack:
aload 6
ifnull 45
aload 6
invokevirtual java.io.PrintWriter.close:()V
goto 45
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 2
aload 6
ifnull 44
aload 6
invokevirtual java.io.PrintWriter.close:()V
end local 6 StackMap locals:
StackMap stack:
44: aload 2
athrow
StackMap locals:
StackMap stack:
45: aload 5
ifnull 50
aload 5
invokevirtual java.io.OutputStreamWriter.close:()V
goto 50
StackMap locals:
StackMap stack: java.lang.Throwable
46: astore 3
aload 2
ifnonnull 47
aload 3
astore 2
goto 48
StackMap locals:
StackMap stack:
47: aload 2
aload 3
if_acmpeq 48
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
48: aload 5
ifnull 49
aload 5
invokevirtual java.io.OutputStreamWriter.close:()V
end local 5 StackMap locals:
StackMap stack:
49: aload 2
athrow
StackMap locals:
StackMap stack:
50: aload 4
ifnull 62
aload 4
invokevirtual java.io.FileOutputStream.close:()V
goto 62
StackMap locals:
StackMap stack: java.lang.Throwable
51: astore 3
aload 2
ifnonnull 52
aload 3
astore 2
goto 53
StackMap locals:
StackMap stack:
52: aload 2
aload 3
if_acmpeq 53
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
53: aload 4
ifnull 54
aload 4
invokevirtual java.io.FileOutputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
54: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
55: astore 3
aload 2
ifnonnull 56
aload 3
astore 2
goto 57
StackMap locals:
StackMap stack:
56: aload 2
aload 3
if_acmpeq 57
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
57: aload 2
athrow
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.io.File
StackMap stack: java.io.IOException
58: astore 2
start local 2 59: aload 1
invokevirtual java.io.File.exists:()Z
ifeq 61
aload 1
invokevirtual java.io.File.delete:()Z
ifne 61
60: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileDelete"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
61: StackMap locals: java.io.IOException
StackMap stack:
aload 2
athrow
end local 2 62: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.io.File.lastModified:()J
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
63: goto 67
StackMap locals:
StackMap stack: java.lang.Throwable
64: astore 8
65: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
66: aload 8
athrow
67: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
68: new java.io.File
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathnameOld:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 69: aload 2
invokevirtual java.io.File.isAbsolute:()Z
ifne 71
70: new java.io.File
dup
ldc "catalina.base"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathnameOld:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 2
71: StackMap locals: java.io.File
StackMap stack:
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 73
aload 2
invokevirtual java.io.File.delete:()Z
ifne 73
72: new java.io.IOException
dup
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileDelete"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
73: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 74: aload 3
invokevirtual java.io.File.isAbsolute:()Z
ifne 76
75: new java.io.File
dup
ldc "catalina.base"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 3
76: StackMap locals: java.io.File
StackMap stack:
aload 3
invokevirtual java.io.File.exists:()Z
ifeq 81
77: aload 3
aload 2
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
ifne 81
78: new java.io.IOException
dup
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.renameOld"
iconst_1
anewarray java.lang.Object
dup
iconst_0
79: aload 2
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
80: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
81: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
ifne 88
82: aload 2
invokevirtual java.io.File.exists:()Z
ifeq 85
83: aload 2
aload 3
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
ifne 85
84: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.restoreOrig"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
85: StackMap locals:
StackMap stack:
new java.io.IOException
dup
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.renameNew"
iconst_1
anewarray java.lang.Object
dup
iconst_0
86: aload 3
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
87: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
88: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 90
aload 2
invokevirtual java.io.File.delete:()Z
ifne 90
89: new java.io.IOException
dup
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileDelete"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
90: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 91 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
7 91 1 fileNew Ljava/io/File;
12 54 4 fos Ljava/io/FileOutputStream;
13 49 5 osw Ljava/io/OutputStreamWriter;
14 44 6 writer Ljava/io/PrintWriter;
22 42 7 values Ljava/util/Iterator<*>;
59 62 2 e Ljava/io/IOException;
69 91 2 fileOld Ljava/io/File;
74 91 3 fileOrig Ljava/io/File;
Exception table:
from to target type
14 42 43 any
13 45 46 any
12 50 51 any
11 55 55 any
10 58 58 Class java.io.IOException
10 64 64 any
Exceptions:
throws java.lang.Exception
public void backgroundProcess();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.watchSource:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.getPathname:()Ljava/lang/String;
invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getURI:(Ljava/lang/String;)Ljava/net/URI;
astore 1
start local 1 3: aconst_null
astore 2
start local 2 4: aload 1
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
astore 3
start local 3 5: aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 2
6: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
aload 2
invokevirtual java.net.URLConnection.getLastModified:()J
lcmp
ifeq 38
7: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
8: aload 2
invokevirtual java.net.URLConnection.getLastModified:()J
lstore 4
start local 4 9: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
lload 4
lcmp
ifeq 17
10: lload 4
ldc 2000
ladd
invokestatic java.lang.System.currentTimeMillis:()J
lcmp
ifge 17
11: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.reload"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.id:Ljava/lang/String;
aastore
dup
iconst_1
aload 1
aastore
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
12: aload 0
invokevirtual org.apache.catalina.users.MemoryUserDatabase.open:()V
end local 4 13: goto 17
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.net.URI java.net.URLConnection java.net.URL
StackMap stack: java.lang.Throwable
14: astore 6
15: aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
16: aload 6
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
end local 3 18: goto 38
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.net.URI java.net.URLConnection
StackMap stack: java.lang.Exception
19: astore 3
start local 3 20: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.reloadError"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.id:Ljava/lang/String;
aastore
dup
iconst_1
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 3
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 21: aload 2
ifnull 45
22: aload 2
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
23: goto 45
StackMap locals:
StackMap stack: java.io.FileNotFoundException
24: pop
25: aload 0
lconst_0
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
goto 45
26: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 27: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileClose"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
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 28: goto 45
29: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
30: aload 2
ifnull 37
31: aload 2
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
32: goto 37
StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.net.URI java.net.URLConnection top top top top java.lang.Throwable
StackMap stack: java.io.FileNotFoundException
33: pop
34: aload 0
lconst_0
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
goto 37
35: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 36: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileClose"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
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 37: StackMap locals:
StackMap stack:
aload 7
athrow
38: StackMap locals: org.apache.catalina.users.MemoryUserDatabase java.net.URI java.net.URLConnection
StackMap stack:
aload 2
ifnull 45
39: aload 2
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
40: goto 45
StackMap locals:
StackMap stack: java.io.FileNotFoundException
41: pop
42: aload 0
lconst_0
putfield org.apache.catalina.users.MemoryUserDatabase.lastModified:J
goto 45
43: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 44: getstatic org.apache.catalina.users.MemoryUserDatabase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.users.MemoryUserDatabase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "memoryUserDatabase.fileClose"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
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 45: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
3 46 1 uri Ljava/net/URI;
4 46 2 uConn Ljava/net/URLConnection;
5 18 3 url Ljava/net/URL;
9 13 4 detectedLastModified J
20 21 3 ioe Ljava/lang/Exception;
27 28 8 ioe Ljava/io/IOException;
36 37 8 ioe Ljava/io/IOException;
44 45 8 ioe Ljava/io/IOException;
Exception table:
from to target type
8 14 14 any
4 18 19 Class java.lang.Exception
22 23 24 Class java.io.FileNotFoundException
22 23 26 Class java.io.IOException
4 21 29 any
31 32 33 Class java.io.FileNotFoundException
31 32 35 Class java.io.IOException
39 40 41 Class java.io.FileNotFoundException
39 40 43 Class java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "MemoryUserDatabase[id="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.id:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
ldc ",pathname="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.pathname:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 1
ldc ",groupCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 1
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.groups:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
6: aload 1
ldc ",roleCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 1
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.roles:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
8: aload 1
ldc ",userCount="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
aload 0
getfield org.apache.catalina.users.MemoryUserDatabase.users:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
10: aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/catalina/users/MemoryUserDatabase;
1 12 1 sb Ljava/lang/StringBuilder;
}
SourceFile: "MemoryUserDatabase.java"
InnerClasses:
public ReadLock = java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock of java.util.concurrent.locks.ReentrantReadWriteLock
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
public Resource = org.apache.tomcat.util.file.ConfigurationSource$Resource of org.apache.tomcat.util.file.ConfigurationSource