public class io.netty.example.worldclock.WorldClockClientHandler extends io.netty.channel.SimpleChannelInboundHandler<io.netty.example.worldclock.WorldClockProtocol$LocalTimes>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.example.worldclock.WorldClockClientHandler
super_class: io.netty.channel.SimpleChannelInboundHandler
{
private static final java.util.regex.Pattern DELIM;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile io.netty.channel.Channel channel;
descriptor: Lio/netty/channel/Channel;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.BlockingQueue<io.netty.example.worldclock.WorldClockProtocol$LocalTimes> answer;
descriptor: Ljava/util/concurrent/BlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/BlockingQueue<Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "/"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.netty.example.worldclock.WorldClockClientHandler.DELIM:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:(Z)V
1: aload 0
new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
putfield io.netty.example.worldclock.WorldClockClientHandler.answer:Ljava/util/concurrent/BlockingQueue;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/worldclock/WorldClockClientHandler;
public java.util.List<java.lang.String> getLocalTimes(java.util.Collection<java.lang.String>);
descriptor: (Ljava/util/Collection;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: invokestatic io.netty.example.worldclock.WorldClockProtocol$Locations.newBuilder:()Lio/netty/example/worldclock/WorldClockProtocol$Locations$Builder;
astore 2
start local 2 1: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: io.netty.example.worldclock.WorldClockClientHandler java.util.Collection io.netty.example.worldclock.WorldClockProtocol$Locations$Builder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: getstatic io.netty.example.worldclock.WorldClockClientHandler.DELIM:Ljava/util/regex/Pattern;
aload 3
invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
astore 5
start local 5 4: aload 2
invokestatic io.netty.example.worldclock.WorldClockProtocol$Location.newBuilder:()Lio/netty/example/worldclock/WorldClockProtocol$Location$Builder;
5: aload 5
iconst_0
aaload
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokestatic io.netty.example.worldclock.WorldClockProtocol$Continent.valueOf:(Ljava/lang/String;)Lio/netty/example/worldclock/WorldClockProtocol$Continent;
invokevirtual io.netty.example.worldclock.WorldClockProtocol$Location$Builder.setContinent:(Lio/netty/example/worldclock/WorldClockProtocol$Continent;)Lio/netty/example/worldclock/WorldClockProtocol$Location$Builder;
6: aload 5
iconst_1
aaload
invokevirtual io.netty.example.worldclock.WorldClockProtocol$Location$Builder.setCity:(Ljava/lang/String;)Lio/netty/example/worldclock/WorldClockProtocol$Location$Builder;
invokevirtual io.netty.example.worldclock.WorldClockProtocol$Location$Builder.build:()Lio/netty/example/worldclock/WorldClockProtocol$Location;
7: invokevirtual io.netty.example.worldclock.WorldClockProtocol$Locations$Builder.addLocation:(Lio/netty/example/worldclock/WorldClockProtocol$Location;)Lio/netty/example/worldclock/WorldClockProtocol$Locations$Builder;
pop
end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
9: aload 0
getfield io.netty.example.worldclock.WorldClockClientHandler.channel:Lio/netty/channel/Channel;
aload 2
invokevirtual io.netty.example.worldclock.WorldClockProtocol$Locations$Builder.build:()Lio/netty/example/worldclock/WorldClockProtocol$Locations;
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
10: iconst_0
istore 4
start local 4 11: StackMap locals: io.netty.example.worldclock.WorldClockClientHandler java.util.Collection io.netty.example.worldclock.WorldClockProtocol$Locations$Builder top int
StackMap stack:
aload 0
getfield io.netty.example.worldclock.WorldClockClientHandler.answer:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
checkcast io.netty.example.worldclock.WorldClockProtocol$LocalTimes
astore 3
start local 3 12: goto 16
end local 3 13: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
14: iconst_1
istore 4
15: goto 11
start local 3 16: StackMap locals: io.netty.example.worldclock.WorldClockClientHandler java.util.Collection io.netty.example.worldclock.WorldClockProtocol$Locations$Builder io.netty.example.worldclock.WorldClockProtocol$LocalTimes int
StackMap stack:
iload 4
ifeq 18
17: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
18: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 19: aload 3
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTimes.getLocalTimeList:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 34
StackMap locals: io.netty.example.worldclock.WorldClockClientHandler java.util.Collection io.netty.example.worldclock.WorldClockProtocol$Locations$Builder io.netty.example.worldclock.WorldClockProtocol$LocalTimes int java.util.List top java.util.Iterator
StackMap stack:
20: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.example.worldclock.WorldClockProtocol$LocalTime
astore 6
start local 6 21: aload 5
22: new java.util.Formatter
dup
invokespecial java.util.Formatter.<init>:()V
23: ldc "%4d-%02d-%02d %02d:%02d:%02d %s"
bipush 7
anewarray java.lang.Object
dup
iconst_0
24: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getYear:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
25: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getMonth:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
26: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getDayOfMonth:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
27: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getHour:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
28: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getMinute:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_5
29: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getSecond:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
bipush 6
30: aload 6
invokevirtual io.netty.example.worldclock.WorldClockProtocol$LocalTime.getDayOfWeek:()Lio/netty/example/worldclock/WorldClockProtocol$DayOfWeek;
invokevirtual io.netty.example.worldclock.WorldClockProtocol$DayOfWeek.name:()Ljava/lang/String;
aastore
31: invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
32: invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
33: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 34: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
35: aload 5
areturn
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 36 0 this Lio/netty/example/worldclock/WorldClockClientHandler;
0 36 1 cities Ljava/util/Collection<Ljava/lang/String;>;
1 36 2 builder Lio/netty/example/worldclock/WorldClockProtocol$Locations$Builder;
3 8 3 c Ljava/lang/String;
4 8 5 components [Ljava/lang/String;
12 13 3 localTimes Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;
16 36 3 localTimes Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;
11 36 4 interrupted Z
19 36 5 result Ljava/util/List<Ljava/lang/String;>;
21 34 6 lt Lio/netty/example/worldclock/WorldClockProtocol$LocalTime;
Exception table:
from to target type
11 12 13 Class java.lang.InterruptedException
Signature: (Ljava/util/Collection<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
cities
public void channelRegistered(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
putfield io.netty.example.worldclock.WorldClockClientHandler.channel:Lio/netty/channel/Channel;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/example/worldclock/WorldClockClientHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx
public void channelRead0(io.netty.channel.ChannelHandlerContext, io.netty.example.worldclock.WorldClockProtocol$LocalTimes);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.example.worldclock.WorldClockClientHandler.answer:Ljava/util/concurrent/BlockingQueue;
aload 2
invokeinterface java.util.concurrent.BlockingQueue.add:(Ljava/lang/Object;)Z
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/example/worldclock/WorldClockClientHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 times Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
times
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Throwable.printStackTrace:()V
1: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.close:()Lio/netty/channel/ChannelFuture;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/example/worldclock/WorldClockClientHandler;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
ctx
cause
public void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast io.netty.example.worldclock.WorldClockProtocol$LocalTimes
invokevirtual io.netty.example.worldclock.WorldClockClientHandler.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Lio/netty/example/worldclock/WorldClockProtocol$LocalTimes;>;
SourceFile: "WorldClockClientHandler.java"
InnerClasses:
public final Continent = io.netty.example.worldclock.WorldClockProtocol$Continent of io.netty.example.worldclock.WorldClockProtocol
public final DayOfWeek = io.netty.example.worldclock.WorldClockProtocol$DayOfWeek of io.netty.example.worldclock.WorldClockProtocol
public final LocalTime = io.netty.example.worldclock.WorldClockProtocol$LocalTime of io.netty.example.worldclock.WorldClockProtocol
public final LocalTimes = io.netty.example.worldclock.WorldClockProtocol$LocalTimes of io.netty.example.worldclock.WorldClockProtocol
public final Location = io.netty.example.worldclock.WorldClockProtocol$Location of io.netty.example.worldclock.WorldClockProtocol
public final Builder = io.netty.example.worldclock.WorldClockProtocol$Location$Builder of io.netty.example.worldclock.WorldClockProtocol$Location
public final Locations = io.netty.example.worldclock.WorldClockProtocol$Locations of io.netty.example.worldclock.WorldClockProtocol
public final Builder = io.netty.example.worldclock.WorldClockProtocol$Locations$Builder of io.netty.example.worldclock.WorldClockProtocol$Locations