public class org.eclipse.jetty.util.SocketAddressResolver$Async implements org.eclipse.jetty.util.SocketAddressResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.util.SocketAddressResolver$Async
super_class: java.lang.Object
{
private static final org.eclipse.jetty.util.log.Logger LOG;
descriptor: Lorg/eclipse/jetty/util/log/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jetty.util.thread.Scheduler scheduler;
descriptor: Lorg/eclipse/jetty/util/thread/Scheduler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long timeout;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/util/SocketAddressResolver;
invokestatic org.eclipse.jetty.util.log.Log.getLogger:(Ljava/lang/Class;)Lorg/eclipse/jetty/util/log/Logger;
putstatic org.eclipse.jetty.util.SocketAddressResolver$Async.LOG:Lorg/eclipse/jetty/util/log/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.util.concurrent.Executor, org.eclipse.jetty.util.thread.Scheduler, long);
descriptor: (Ljava/util/concurrent/Executor;Lorg/eclipse/jetty/util/thread/Scheduler;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.eclipse.jetty.util.SocketAddressResolver$Async.executor:Ljava/util/concurrent/Executor;
2: aload 0
aload 2
putfield org.eclipse.jetty.util.SocketAddressResolver$Async.scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
3: aload 0
lload 3
putfield org.eclipse.jetty.util.SocketAddressResolver$Async.timeout:J
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
0 5 1 executor Ljava/util/concurrent/Executor;
0 5 2 scheduler Lorg/eclipse/jetty/util/thread/Scheduler;
0 5 3 timeout J
MethodParameters:
Name Flags
executor
scheduler
timeout
public java.util.concurrent.Executor getExecutor();
descriptor: ()Ljava/util/concurrent/Executor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.executor:Ljava/util/concurrent/Executor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
public org.eclipse.jetty.util.thread.Scheduler getScheduler();
descriptor: ()Lorg/eclipse/jetty/util/thread/Scheduler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
public long getTimeout();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.timeout:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
RuntimeVisibleAnnotations:
org.eclipse.jetty.util.annotation.ManagedAttribute(value = "The timeout, in milliseconds, to resolve an address", readonly = true)
public void resolve(java.lang.String, int, org.eclipse.jetty.util.Promise<java.util.List<java.net.InetSocketAddress>>);
descriptor: (Ljava/lang/String;ILorg/eclipse/jetty/util/Promise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.executor:Ljava/util/concurrent/Executor;
aload 0
aload 3
aload 1
iload 2
invokedynamic run(Lorg/eclipse/jetty/util/SocketAddressResolver$Async;Lorg/eclipse/jetty/util/Promise;Ljava/lang/String;I)Ljava/lang/Runnable;
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:
()V
org/eclipse/jetty/util/SocketAddressResolver$Async.lambda$0(Lorg/eclipse/jetty/util/Promise;Ljava/lang/String;I)V (7)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
0 2 1 host Ljava/lang/String;
0 2 2 port I
0 2 3 promise Lorg/eclipse/jetty/util/Promise<Ljava/util/List<Ljava/net/InetSocketAddress;>;>;
Signature: (Ljava/lang/String;ILorg/eclipse/jetty/util/Promise<Ljava/util/List<Ljava/net/InetSocketAddress;>;>;)V
MethodParameters:
Name Flags
host final
port final
promise final
private void lambda$0(org.eclipse.jetty.util.Promise, java.lang.String, int);
descriptor: (Lorg/eclipse/jetty/util/Promise;Ljava/lang/String;I)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=17, args_size=4
start local 0 0: aconst_null
astore 4
start local 4 1: new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
astore 5
start local 5 2: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.timeout:J
lconst_0
lcmp
ifle 7
3: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 6
start local 6 4: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
aload 0
aload 5
aload 1
aload 6
invokedynamic run(Lorg/eclipse/jetty/util/SocketAddressResolver$Async;Ljava/util/concurrent/atomic/AtomicBoolean;Lorg/eclipse/jetty/util/Promise;Ljava/lang/Thread;)Ljava/lang/Runnable;
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:
()V
org/eclipse/jetty/util/SocketAddressResolver$Async.lambda$1(Ljava/util/concurrent/atomic/AtomicBoolean;Lorg/eclipse/jetty/util/Promise;Ljava/lang/Thread;)V (7)
()V
5: aload 0
getfield org.eclipse.jetty.util.SocketAddressResolver$Async.timeout:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
6: invokeinterface org.eclipse.jetty.util.thread.Scheduler.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/eclipse/jetty/util/thread/Scheduler$Task;
astore 4
end local 6 7: StackMap locals: org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 6
start local 6 8: aload 2
invokestatic java.net.InetAddress.getAllByName:(Ljava/lang/String;)[Ljava/net/InetAddress;
astore 8
start local 8 9: invokestatic java.lang.System.nanoTime:()J
lload 6
lsub
lstore 9
start local 9 10: getstatic org.eclipse.jetty.util.SocketAddressResolver$Async.LOG:Lorg/eclipse/jetty/util/log/Logger;
invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
ifeq 12
11: getstatic org.eclipse.jetty.util.SocketAddressResolver$Async.LOG:Lorg/eclipse/jetty/util/log/Logger;
ldc "Resolved {} in {} ms"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 9
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals: long java.net.InetAddress[] long
StackMap stack:
new java.util.ArrayList
dup
aload 8
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 11
start local 11 13: aload 8
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 17
StackMap locals: org.eclipse.jetty.util.SocketAddressResolver$Async org.eclipse.jetty.util.Promise java.lang.String int org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean long java.net.InetAddress[] long java.util.List top int int java.net.InetAddress[]
StackMap stack:
14: aload 15
iload 13
aaload
astore 12
start local 12 15: aload 11
new java.net.InetSocketAddress
dup
aload 12
iload 3
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 16: iinc 13 1
StackMap locals:
StackMap stack:
17: iload 13
iload 14
if_icmplt 14
18: aload 5
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 32
19: aload 11
invokeinterface java.util.List.isEmpty:()Z
ifeq 21
20: aload 1
new java.net.UnknownHostException
dup
invokespecial java.net.UnknownHostException.<init>:()V
invokeinterface org.eclipse.jetty.util.Promise.failed:(Ljava/lang/Throwable;)V
goto 32
21: StackMap locals: org.eclipse.jetty.util.SocketAddressResolver$Async org.eclipse.jetty.util.Promise java.lang.String int org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean long java.net.InetAddress[] long java.util.List
StackMap stack:
aload 1
aload 11
invokeinterface org.eclipse.jetty.util.Promise.succeeded:(Ljava/lang/Object;)V
end local 11 end local 9 end local 8 end local 6 22: goto 32
23: StackMap locals: org.eclipse.jetty.util.SocketAddressResolver$Async org.eclipse.jetty.util.Promise java.lang.String int org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean
StackMap stack: java.lang.Throwable
astore 6
start local 6 24: aload 5
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 26
25: aload 1
aload 6
invokeinterface org.eclipse.jetty.util.Promise.failed:(Ljava/lang/Throwable;)V
end local 6 26: StackMap locals:
StackMap stack:
aload 4
ifnull 34
27: aload 4
invokeinterface org.eclipse.jetty.util.thread.Scheduler$Task.cancel:()Z
pop
goto 34
28: StackMap locals:
StackMap stack: java.lang.Throwable
astore 16
29: aload 4
ifnull 31
30: aload 4
invokeinterface org.eclipse.jetty.util.thread.Scheduler$Task.cancel:()Z
pop
31: StackMap locals: org.eclipse.jetty.util.SocketAddressResolver$Async org.eclipse.jetty.util.Promise java.lang.String int org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
32: StackMap locals: org.eclipse.jetty.util.SocketAddressResolver$Async org.eclipse.jetty.util.Promise java.lang.String int org.eclipse.jetty.util.thread.Scheduler$Task java.util.concurrent.atomic.AtomicBoolean
StackMap stack:
aload 4
ifnull 34
33: aload 4
invokeinterface org.eclipse.jetty.util.thread.Scheduler$Task.cancel:()Z
pop
end local 5 end local 4 34: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
1 34 4 task Lorg/eclipse/jetty/util/thread/Scheduler$Task;
2 34 5 complete Ljava/util/concurrent/atomic/AtomicBoolean;
4 7 6 thread Ljava/lang/Thread;
8 22 6 start J
9 22 8 addresses [Ljava/net/InetAddress;
10 22 9 elapsed J
13 22 11 result Ljava/util/List<Ljava/net/InetSocketAddress;>;
15 16 12 address Ljava/net/InetAddress;
24 26 6 x Ljava/lang/Throwable;
Exception table:
from to target type
7 22 23 Class java.lang.Throwable
7 26 28 any
private void lambda$1(java.util.concurrent.atomic.AtomicBoolean, org.eclipse.jetty.util.Promise, java.lang.Thread);
descriptor: (Ljava/util/concurrent/atomic/AtomicBoolean;Lorg/eclipse/jetty/util/Promise;Ljava/lang/Thread;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=4, args_size=4
start local 0 0: aload 1
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 3
1: aload 2
new java.util.concurrent.TimeoutException
dup
new java.lang.StringBuilder
dup
ldc "DNS timeout "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.eclipse.jetty.util.SocketAddressResolver$Async.getTimeout:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " ms"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
invokeinterface org.eclipse.jetty.util.Promise.failed:(Ljava/lang/Throwable;)V
2: aload 3
invokevirtual java.lang.Thread.interrupt:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jetty/util/SocketAddressResolver$Async;
}
SourceFile: "SocketAddressResolver.java"
NestHost: org.eclipse.jetty.util.SocketAddressResolver
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Async = org.eclipse.jetty.util.SocketAddressResolver$Async of org.eclipse.jetty.util.SocketAddressResolver
public abstract Task = org.eclipse.jetty.util.thread.Scheduler$Task of org.eclipse.jetty.util.thread.Scheduler
RuntimeVisibleAnnotations:
org.eclipse.jetty.util.annotation.ManagedObject(value = "The asynchronous address resolver")