public class com.sun.jndi.dns.DnsContextFactory implements javax.naming.spi.InitialContextFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.jndi.dns.DnsContextFactory
super_class: java.lang.Object
{
private static final java.lang.String DEFAULT_URL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "dns:"
private static final int DEFAULT_PORT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 53
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 Lcom/sun/jndi/dns/DnsContextFactory;
public javax.naming.Context getInitialContext(java.util.Hashtable<?, ?>);
descriptor: (Ljava/util/Hashtable;)Ljavax/naming/Context;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.util.Hashtable
dup
iconst_5
invokespecial java.util.Hashtable.<init>:(I)V
astore 1
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.sun.jndi.dns.DnsContextFactory.getInitCtxUrl:(Ljava/util/Hashtable;)Ljava/lang/String;
aload 1
invokestatic com.sun.jndi.dns.DnsContextFactory.urlToContext:(Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/naming/Context;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/jndi/dns/DnsContextFactory;
0 3 1 env Ljava/util/Hashtable<**>;
Exceptions:
throws javax.naming.NamingException
Signature: (Ljava/util/Hashtable<**>;)Ljavax/naming/Context;
MethodParameters:
Name Flags
env
public static com.sun.jndi.dns.DnsContext getContext(java.lang.String, java.lang.String[], java.util.Hashtable<?, ?>);
descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/util/Hashtable;)Lcom/sun/jndi/dns/DnsContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.sun.jndi.dns.DnsContext
dup
aload 0
aload 1
aload 2
invokespecial com.sun.jndi.dns.DnsContext.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Hashtable;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 domain Ljava/lang/String;
0 1 1 servers [Ljava/lang/String;
0 1 2 env Ljava/util/Hashtable<**>;
Exceptions:
throws javax.naming.NamingException
Signature: (Ljava/lang/String;[Ljava/lang/String;Ljava/util/Hashtable<**>;)Lcom/sun/jndi/dns/DnsContext;
MethodParameters:
Name Flags
domain
servers
env
public static com.sun.jndi.dns.DnsContext getContext(java.lang.String, com.sun.jndi.dns.DnsUrl[], java.util.Hashtable);
descriptor: (Ljava/lang/String;[Lcom/sun/jndi/dns/DnsUrl;Ljava/util/Hashtable;)Lcom/sun/jndi/dns/DnsContext;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.sun.jndi.dns.DnsContextFactory.serversForUrls:([Lcom/sun/jndi/dns/DnsUrl;)[Ljava/lang/String;
astore 3
start local 3 1: aload 0
aload 3
aload 2
invokestatic com.sun.jndi.dns.DnsContextFactory.getContext:(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Hashtable;)Lcom/sun/jndi/dns/DnsContext;
astore 4
start local 4 2: aload 1
invokestatic com.sun.jndi.dns.DnsContextFactory.platformServersUsed:([Lcom/sun/jndi/dns/DnsUrl;)Z
ifeq 4
3: aload 4
aload 0
aload 3
invokestatic com.sun.jndi.dns.DnsContextFactory.constructProviderUrl:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
invokevirtual com.sun.jndi.dns.DnsContext.setProviderUrl:(Ljava/lang/String;)V
4: StackMap locals: java.lang.String[] com.sun.jndi.dns.DnsContext
StackMap stack:
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 5 0 domain Ljava/lang/String;
0 5 1 urls [Lcom/sun/jndi/dns/DnsUrl;
0 5 2 env Ljava/util/Hashtable;
1 5 3 servers [Ljava/lang/String;
2 5 4 ctx Lcom/sun/jndi/dns/DnsContext;
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
domain
urls
env
public static boolean platformServersAvailable();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic sun.net.dns.ResolverConfiguration.open:()Lsun/net/dns/ResolverConfiguration;
invokevirtual sun.net.dns.ResolverConfiguration.nameservers:()Ljava/util/List;
iconst_1
1: invokestatic com.sun.jndi.dns.DnsContextFactory.filterNameServers:(Ljava/util/List;Z)Ljava/util/List;
2: invokeinterface java.util.List.isEmpty:()Z
ifeq 4
3: iconst_0
goto 5
StackMap locals:
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ireturn
LocalVariableTable:
Start End Slot Name Signature
private static javax.naming.Context urlToContext(java.lang.String, java.util.Hashtable);
descriptor: (Ljava/lang/String;Ljava/util/Hashtable;)Ljavax/naming/Context;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.sun.jndi.dns.DnsUrl.fromList:(Ljava/lang/String;)[Lcom/sun/jndi/dns/DnsUrl;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.net.MalformedURLException
2: astore 3
start local 3 3: new javax.naming.ConfigurationException
dup
aload 3
invokevirtual java.net.MalformedURLException.getMessage:()Ljava/lang/String;
invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 start local 2 4: StackMap locals: com.sun.jndi.dns.DnsUrl[]
StackMap stack:
aload 2
arraylength
ifne 8
5: new javax.naming.ConfigurationException
dup
6: new java.lang.StringBuilder
dup
ldc "Invalid DNS pseudo-URL(s): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getDomain:()Ljava/lang/String;
astore 3
start local 3 9: iconst_1
istore 4
start local 4 10: goto 16
11: StackMap locals: java.lang.String int
StackMap stack:
aload 3
aload 2
iload 4
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getDomain:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 15
12: new javax.naming.ConfigurationException
dup
13: new java.lang.StringBuilder
dup
ldc "Conflicting domains: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
aload 2
arraylength
if_icmplt 11
end local 4 17: aload 3
aload 2
aload 1
invokestatic com.sun.jndi.dns.DnsContextFactory.getContext:(Ljava/lang/String;[Lcom/sun/jndi/dns/DnsUrl;Ljava/util/Hashtable;)Lcom/sun/jndi/dns/DnsContext;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 url Ljava/lang/String;
0 18 1 env Ljava/util/Hashtable;
1 2 2 urls [Lcom/sun/jndi/dns/DnsUrl;
4 18 2 urls [Lcom/sun/jndi/dns/DnsUrl;
3 4 3 e Ljava/net/MalformedURLException;
9 18 3 domain Ljava/lang/String;
10 17 4 i I
Exception table:
from to target type
0 1 2 Class java.net.MalformedURLException
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
url
env
private static java.lang.String[] serversForUrls(com.sun.jndi.dns.DnsUrl[]);
descriptor: ([Lcom/sun/jndi/dns/DnsUrl;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
arraylength
ifne 2
1: new javax.naming.ConfigurationException
dup
ldc "DNS pseudo-URL required"
invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 3: iconst_0
istore 2
start local 2 4: goto 20
5: StackMap locals: java.util.List int
StackMap stack:
aload 0
iload 2
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getHost:()Ljava/lang/String;
astore 3
start local 3 6: aload 0
iload 2
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getPort:()I
istore 4
start local 4 7: aload 3
ifnonnull 13
iload 4
ifge 13
8: invokestatic sun.net.dns.ResolverConfiguration.open:()Lsun/net/dns/ResolverConfiguration;
invokevirtual sun.net.dns.ResolverConfiguration.nameservers:()Ljava/util/List;
iconst_0
9: invokestatic com.sun.jndi.dns.DnsContextFactory.filterNameServers:(Ljava/util/List;Z)Ljava/util/List;
astore 5
start local 5 10: aload 5
invokeinterface java.util.List.isEmpty:()Z
ifne 13
11: aload 1
aload 5
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
12: goto 19
end local 5 13: StackMap locals: java.lang.String int
StackMap stack:
aload 3
ifnonnull 15
14: ldc "localhost"
astore 3
15: StackMap locals:
StackMap stack:
aload 1
iload 4
ifge 17
16: aload 3
goto 18
17: StackMap locals:
StackMap stack: java.util.List
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: StackMap locals: com.sun.jndi.dns.DnsUrl[] java.util.List int java.lang.String int
StackMap stack: java.util.List java.lang.String
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 end local 3 19: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
20: iload 2
aload 0
arraylength
if_icmplt 5
end local 2 21: aload 1
aload 1
invokeinterface java.util.List.size:()I
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 urls [Lcom/sun/jndi/dns/DnsUrl;
3 22 1 servers Ljava/util/List<Ljava/lang/String;>;
4 21 2 i I
6 19 3 server Ljava/lang/String;
7 19 4 port I
10 13 5 platformServers Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
urls
private static boolean platformServersUsed(com.sun.jndi.dns.DnsUrl[]);
descriptor: ([Lcom/sun/jndi/dns/DnsUrl;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.sun.jndi.dns.DnsContextFactory.platformServersAvailable:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: goto 8
4: StackMap locals: int
StackMap stack:
aload 0
iload 1
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getHost:()Ljava/lang/String;
ifnonnull 7
5: aload 0
iload 1
aaload
invokevirtual com.sun.jndi.dns.DnsUrl.getPort:()I
ifge 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
8: iload 1
aload 0
arraylength
if_icmplt 4
end local 1 9: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 urls [Lcom/sun/jndi/dns/DnsUrl;
3 9 1 i I
MethodParameters:
Name Flags
urls
private static java.lang.String constructProviderUrl(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: ldc ""
astore 2
start local 2 1: aload 0
ldc "."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
2: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
ldc "ISO-8859-1"
invokestatic com.sun.jndi.toolkit.url.UrlUtil.encode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
3: goto 5
StackMap locals: java.lang.String java.lang.String[] java.lang.String
StackMap stack: java.io.UnsupportedEncodingException
4: pop
5: StackMap locals:
StackMap stack:
new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 3
start local 3 6: iconst_0
istore 4
start local 4 7: goto 12
8: StackMap locals: java.lang.StringBuffer int
StackMap stack:
iload 4
ifle 10
9: aload 3
bipush 32
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
10: StackMap locals:
StackMap stack:
aload 3
ldc "dns://"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 1
iload 4
aaload
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 2
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 1
arraylength
if_icmplt 8
end local 4 13: aload 3
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 domain Ljava/lang/String;
0 14 1 servers [Ljava/lang/String;
1 14 2 path Ljava/lang/String;
6 14 3 buf Ljava/lang/StringBuffer;
7 13 4 i I
Exception table:
from to target type
2 3 4 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
domain
servers
private static java.lang.String getInitCtxUrl(java.util.Hashtable);
descriptor: (Ljava/util/Hashtable;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ldc "java.naming.provider.url"
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: ldc "dns:"
StackMap locals:
StackMap stack: java.lang.String
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 env Ljava/util/Hashtable;
1 4 1 url Ljava/lang/String;
MethodParameters:
Name Flags
env
private static java.util.List<java.lang.String> filterNameServers(java.util.List<java.lang.String>, boolean);
descriptor: (Ljava/util/List;Z)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnull 2
aload 0
ifnull 2
aload 0
invokeinterface java.util.List.isEmpty:()Z
ifeq 3
2: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
areturn
3: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals: java.util.List int java.lang.SecurityManager java.util.List top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 6: aload 4
bipush 58
aload 4
bipush 93
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
istore 6
start local 6 7: iload 6
ifge 9
8: bipush 53
goto 10
9: StackMap locals: java.util.List int java.lang.SecurityManager java.util.List java.lang.String java.util.Iterator int
StackMap stack:
aload 4
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
10: StackMap locals:
StackMap stack: int
istore 7
start local 7 11: iload 6
ifge 13
12: aload 4
goto 14
StackMap locals: int
StackMap stack:
13: aload 4
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
14: StackMap locals:
StackMap stack: java.lang.String
astore 8
start local 8 15: aload 2
aload 8
iload 7
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
16: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
17: iload 1
ifeq 21
18: aload 3
19: areturn
20: StackMap locals: java.util.List int java.lang.SecurityManager java.util.List java.lang.String java.util.Iterator int int java.lang.String
StackMap stack: java.lang.SecurityException
pop
end local 8 end local 7 end local 6 end local 4 21: StackMap locals: java.util.List int java.lang.SecurityManager java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
22: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 input Ljava/util/List<Ljava/lang/String;>;
0 23 1 oneIsEnough Z
1 23 2 security Ljava/lang/SecurityManager;
4 23 3 output Ljava/util/List<Ljava/lang/String;>;
6 21 4 platformServer Ljava/lang/String;
7 21 6 colon I
11 21 7 p I
15 21 8 s Ljava/lang/String;
Exception table:
from to target type
15 19 20 Class java.lang.SecurityException
Signature: (Ljava/util/List<Ljava/lang/String;>;Z)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
input
oneIsEnough
}
SourceFile: "DnsContextFactory.java"