public class org.apache.naming.factory.LookupFactory implements javax.naming.spi.ObjectFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.naming.factory.LookupFactory
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.naming.StringManager sm;
descriptor: Lorg/apache/naming/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ThreadLocal<java.util.Set<java.lang.String>> names;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/util/Set<Ljava/lang/String;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/naming/factory/LookupFactory;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.naming.factory.LookupFactory.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/naming/factory/LookupFactory;
invokestatic org.apache.naming.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/naming/StringManager;
putstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
2: invokedynamic get()Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
java/util/HashSet.<init>()V (8)
()Ljava/util/Set;
invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
putstatic org.apache.naming.factory.LookupFactory.names:Ljava/lang/ThreadLocal;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/naming/factory/LookupFactory;
public getObjectInstance(, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>);
descriptor: (Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=17, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aconst_null
astore 6
start local 6 2: aload 1
instanceof org.apache.naming.LookupRef
ifeq 69
3: aload 1
checkcast javax.naming.Reference
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aload 7
ldc "lookup-name"
invokevirtual javax.naming.Reference.get:(Ljava/lang/String;)Ljavax/naming/RefAddr;
astore 9
start local 9 6: aload 9
ifnull 8
7: aload 9
invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 5
8: StackMap locals: org.apache.naming.factory.LookupFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable java.lang.String java.lang.Object javax.naming.Reference javax.naming.spi.ObjectFactory javax.naming.RefAddr
StackMap stack:
aload 5
ifnull 14
9: getstatic org.apache.naming.factory.LookupFactory.names:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.util.Set
aload 5
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifne 14
10: getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.circularReference"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 10
start local 10 11: new javax.naming.NamingException
dup
aload 10
invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
astore 11
start local 11 12: getstatic org.apache.naming.factory.LookupFactory.log:Lorg/apache/juli/logging/Log;
aload 10
aload 11
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
13: aload 11
athrow
end local 11 end local 10 14: StackMap locals:
StackMap stack:
aload 7
ldc "factory"
invokevirtual javax.naming.Reference.get:(Ljava/lang/String;)Ljavax/naming/RefAddr;
astore 10
start local 10 15: aload 10
ifnull 47
16: aload 10
invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 11
start local 11 17: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 12
start local 12 18: aconst_null
astore 13
start local 13 19: aload 12
ifnull 28
20: aload 12
aload 11
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 13
21: goto 36
StackMap locals: org.apache.naming.factory.LookupFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable java.lang.String java.lang.Object javax.naming.Reference javax.naming.spi.ObjectFactory javax.naming.RefAddr javax.naming.RefAddr java.lang.String java.lang.ClassLoader java.lang.Class
StackMap stack: java.lang.ClassNotFoundException
22: astore 14
start local 14 23: new javax.naming.NamingException
dup
24: getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.loadFailed"
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
25: invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
astore 15
start local 15 26: aload 15
aload 14
invokevirtual javax.naming.NamingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
27: aload 15
athrow
end local 15 end local 14 28: StackMap locals:
StackMap stack:
aload 11
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 13
29: goto 36
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
30: astore 14
start local 14 31: new javax.naming.NamingException
dup
32: getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.loadFailed"
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
33: invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
astore 15
start local 15 34: aload 15
aload 14
invokevirtual javax.naming.NamingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
35: aload 15
athrow
end local 15 end local 14 36: StackMap locals:
StackMap stack:
aload 13
ifnull 47
37: aload 13
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.naming.spi.ObjectFactory
astore 8
38: goto 47
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 14
start local 14 40: aload 14
instanceof javax.naming.NamingException
ifeq 42
41: aload 14
checkcast javax.naming.NamingException
athrow
42: StackMap locals: java.lang.Throwable
StackMap stack:
new javax.naming.NamingException
dup
43: getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.createFailed"
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
44: invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
astore 15
start local 15 45: aload 15
aload 14
invokevirtual javax.naming.NamingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
46: aload 15
athrow
end local 15 end local 14 end local 13 end local 12 end local 11 47: StackMap locals: org.apache.naming.factory.LookupFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable java.lang.String java.lang.Object javax.naming.Reference javax.naming.spi.ObjectFactory javax.naming.RefAddr javax.naming.RefAddr
StackMap stack:
aload 8
ifnull 50
48: aload 8
aload 1
aload 2
aload 3
aload 4
invokeinterface javax.naming.spi.ObjectFactory.getObjectInstance:(Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljava/lang/Object;
astore 6
49: goto 53
50: StackMap locals:
StackMap stack:
aload 5
ifnonnull 52
51: new javax.naming.NamingException
dup
getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.createFailed"
invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
athrow
52: StackMap locals:
StackMap stack:
new javax.naming.InitialContext
dup
invokespecial javax.naming.InitialContext.<init>:()V
aload 5
invokevirtual javax.naming.InitialContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
astore 6
53: StackMap locals:
StackMap stack:
aload 7
invokevirtual javax.naming.Reference.getClassName:()Ljava/lang/String;
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 11
start local 11 54: aload 6
ifnull 68
aload 11
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 68
55: getstatic org.apache.naming.factory.LookupFactory.sm:Lorg/apache/naming/StringManager;
ldc "lookupFactory.typeMismatch"
iconst_4
anewarray java.lang.Object
dup
iconst_0
56: aload 2
aastore
dup
iconst_1
aload 7
invokevirtual javax.naming.Reference.getClassName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 5
aastore
dup
iconst_3
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
57: invokevirtual org.apache.naming.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 12
start local 12 58: new javax.naming.NamingException
dup
aload 12
invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
astore 13
start local 13 59: getstatic org.apache.naming.factory.LookupFactory.log:Lorg/apache/juli/logging/Log;
aload 12
aload 13
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
60: aload 6
instanceof java.lang.AutoCloseable
ifeq 64
61: aload 6
checkcast java.lang.AutoCloseable
invokeinterface java.lang.AutoCloseable.close:()V
62: goto 64
StackMap locals: org.apache.naming.factory.LookupFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable java.lang.String java.lang.Object javax.naming.Reference javax.naming.spi.ObjectFactory javax.naming.RefAddr javax.naming.RefAddr java.lang.Class java.lang.String javax.naming.NamingException
StackMap stack: java.lang.Exception
63: pop
64: StackMap locals:
StackMap stack:
aload 13
athrow
end local 13 end local 12 end local 11 end local 10 65: StackMap locals: org.apache.naming.factory.LookupFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable java.lang.String java.lang.Object javax.naming.Reference javax.naming.spi.ObjectFactory javax.naming.RefAddr
StackMap stack: java.lang.Throwable
astore 16
66: getstatic org.apache.naming.factory.LookupFactory.names:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.util.Set
aload 5
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
67: aload 16
athrow
68: StackMap locals:
StackMap stack:
getstatic org.apache.naming.factory.LookupFactory.names:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.util.Set
aload 5
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 69: StackMap locals:
StackMap stack:
aload 6
areturn
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 70 0 this Lorg/apache/naming/factory/LookupFactory;
0 70 1 obj Ljava/lang/Object;
0 70 2 name Ljavax/naming/Name;
0 70 3 nameCtx Ljavax/naming/Context;
0 70 4 environment Ljava/util/Hashtable<**>;
1 70 5 lookupName Ljava/lang/String;
2 70 6 result Ljava/lang/Object;
4 69 7 ref Ljavax/naming/Reference;
5 69 8 factory Ljavax/naming/spi/ObjectFactory;
6 69 9 lookupNameRefAddr Ljavax/naming/RefAddr;
11 14 10 msg Ljava/lang/String;
12 14 11 ne Ljavax/naming/NamingException;
15 65 10 factoryRefAddr Ljavax/naming/RefAddr;
17 47 11 factoryClassName Ljava/lang/String;
18 47 12 tcl Ljava/lang/ClassLoader;
19 47 13 factoryClass Ljava/lang/Class<*>;
23 28 14 e Ljava/lang/ClassNotFoundException;
26 28 15 ex Ljavax/naming/NamingException;
31 36 14 e Ljava/lang/ClassNotFoundException;
34 36 15 ex Ljavax/naming/NamingException;
40 47 14 t Ljava/lang/Throwable;
45 47 15 ex Ljavax/naming/NamingException;
54 65 11 clazz Ljava/lang/Class<*>;
58 65 12 msg Ljava/lang/String;
59 65 13 ne Ljavax/naming/NamingException;
Exception table:
from to target type
20 21 22 Class java.lang.ClassNotFoundException
28 29 30 Class java.lang.ClassNotFoundException
37 38 39 Class java.lang.Throwable
61 62 63 Class java.lang.Exception
8 65 65 any
Exceptions:
throws java.lang.Exception
Signature: (Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable<**>;)Ljava/lang/Object;
MethodParameters:
Name Flags
obj
name
nameCtx
environment
}
SourceFile: "LookupFactory.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles