public class io.netty.channel.embedded.EmbeddedChannel extends io.netty.channel.AbstractChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.netty.channel.embedded.EmbeddedChannel
  super_class: io.netty.channel.AbstractChannel
{
  private static final java.net.SocketAddress LOCAL_ADDRESS;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.net.SocketAddress REMOTE_ADDRESS;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.channel.ChannelHandler[] EMPTY_HANDLERS;
    descriptor: [Lio/netty/channel/ChannelHandler;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.channel.ChannelMetadata METADATA_NO_DISCONNECT;
    descriptor: Lio/netty/channel/ChannelMetadata;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.netty.channel.ChannelMetadata METADATA_DISCONNECT;
    descriptor: Lio/netty/channel/ChannelMetadata;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.netty.channel.embedded.EmbeddedEventLoop loop;
    descriptor: Lio/netty/channel/embedded/EmbeddedEventLoop;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.ChannelFutureListener recordExceptionListener;
    descriptor: Lio/netty/channel/ChannelFutureListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.ChannelMetadata metadata;
    descriptor: Lio/netty/channel/ChannelMetadata;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.ChannelConfig config;
    descriptor: Lio/netty/channel/ChannelConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.Queue<java.lang.Object> inboundMessages;
    descriptor: Ljava/util/Queue;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Queue<Ljava/lang/Object;>;

  private java.util.Queue<java.lang.Object> outboundMessages;
    descriptor: Ljava/util/Queue;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Queue<Ljava/lang/Object;>;

  private java.lang.Throwable lastException;
    descriptor: Ljava/lang/Throwable;
    flags: (0x0002) ACC_PRIVATE

  private io.netty.channel.embedded.EmbeddedChannel$State state;
    descriptor: Lio/netty/channel/embedded/EmbeddedChannel$State;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 49
            ldc Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic io.netty.channel.embedded.EmbeddedChannel.$assertionsDisabled:Z
         3: .line 51
            new io.netty.channel.embedded.EmbeddedSocketAddress
            dup
            invokespecial io.netty.channel.embedded.EmbeddedSocketAddress.<init>:()V
            putstatic io.netty.channel.embedded.EmbeddedChannel.LOCAL_ADDRESS:Ljava/net/SocketAddress;
         4: .line 52
            new io.netty.channel.embedded.EmbeddedSocketAddress
            dup
            invokespecial io.netty.channel.embedded.EmbeddedSocketAddress.<init>:()V
            putstatic io.netty.channel.embedded.EmbeddedChannel.REMOTE_ADDRESS:Ljava/net/SocketAddress;
         5: .line 54
            iconst_0
            anewarray io.netty.channel.ChannelHandler
            putstatic io.netty.channel.embedded.EmbeddedChannel.EMPTY_HANDLERS:[Lio/netty/channel/ChannelHandler;
         6: .line 57
            ldc Lio/netty/channel/embedded/EmbeddedChannel;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.channel.embedded.EmbeddedChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
         7: .line 59
            new io.netty.channel.ChannelMetadata
            dup
            iconst_0
            invokespecial io.netty.channel.ChannelMetadata.<init>:(Z)V
            putstatic io.netty.channel.embedded.EmbeddedChannel.METADATA_NO_DISCONNECT:Lio/netty/channel/ChannelMetadata;
         8: .line 60
            new io.netty.channel.ChannelMetadata
            dup
            iconst_1
            invokespecial io.netty.channel.ChannelMetadata.<init>:(Z)V
            putstatic io.netty.channel.embedded.EmbeddedChannel.METADATA_DISCONNECT:Lio/netty/channel/ChannelMetadata;
            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 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 82
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannel.EMPTY_HANDLERS:[Lio/netty/channel/ChannelHandler;
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:([Lio/netty/channel/ChannelHandler;)V
         1: .line 83
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public void <init>(io.netty.channel.ChannelId);
    descriptor: (Lio/netty/channel/ChannelId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelId channelId
         0: .line 91
            aload 0 /* this */
            aload 1 /* channelId */
            getstatic io.netty.channel.embedded.EmbeddedChannel.EMPTY_HANDLERS:[Lio/netty/channel/ChannelHandler;
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;[Lio/netty/channel/ChannelHandler;)V
         1: .line 92
            return
        end local 1 // io.netty.channel.ChannelId channelId
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1  channelId  Lio/netty/channel/ChannelId;
    MethodParameters:
           Name  Flags
      channelId  

  public void <init>(io.netty.channel.ChannelHandler[]);
    descriptor: ([Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelHandler[] handlers
         0: .line 100
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannelId.INSTANCE:Lio/netty/channel/ChannelId;
            aload 1 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;[Lio/netty/channel/ChannelHandler;)V
         1: .line 101
            return
        end local 1 // io.netty.channel.ChannelHandler[] handlers
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1  handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
          Name  Flags
      handlers  

  public void <init>(boolean, io.netty.channel.ChannelHandler[]);
    descriptor: (Z[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean hasDisconnect
        start local 2 // io.netty.channel.ChannelHandler[] handlers
         0: .line 111
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannelId.INSTANCE:Lio/netty/channel/ChannelId;
            iload 1 /* hasDisconnect */
            aload 2 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;Z[Lio/netty/channel/ChannelHandler;)V
         1: .line 112
            return
        end local 2 // io.netty.channel.ChannelHandler[] handlers
        end local 1 // boolean hasDisconnect
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1  hasDisconnect  Z
            0    2     2       handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
               Name  Flags
      hasDisconnect  
      handlers       

  public void <init>(boolean, boolean, io.netty.channel.ChannelHandler[]);
    descriptor: (ZZ[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean register
        start local 2 // boolean hasDisconnect
        start local 3 // io.netty.channel.ChannelHandler[] handlers
         0: .line 124
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannelId.INSTANCE:Lio/netty/channel/ChannelId;
            iload 1 /* register */
            iload 2 /* hasDisconnect */
            aload 3 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;ZZ[Lio/netty/channel/ChannelHandler;)V
         1: .line 125
            return
        end local 3 // io.netty.channel.ChannelHandler[] handlers
        end local 2 // boolean hasDisconnect
        end local 1 // boolean register
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1       register  Z
            0    2     2  hasDisconnect  Z
            0    2     3       handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
               Name  Flags
      register       
      hasDisconnect  
      handlers       

  public void <init>(io.netty.channel.ChannelId, io.netty.channel.ChannelHandler[]);
    descriptor: (Lio/netty/channel/ChannelId;[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelId channelId
        start local 2 // io.netty.channel.ChannelHandler[] handlers
         0: .line 135
            aload 0 /* this */
            aload 1 /* channelId */
            iconst_0
            aload 2 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;Z[Lio/netty/channel/ChannelHandler;)V
         1: .line 136
            return
        end local 2 // io.netty.channel.ChannelHandler[] handlers
        end local 1 // io.netty.channel.ChannelId channelId
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1  channelId  Lio/netty/channel/ChannelId;
            0    2     2   handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
           Name  Flags
      channelId  
      handlers   

  public void <init>(io.netty.channel.ChannelId, boolean, io.netty.channel.ChannelHandler[]);
    descriptor: (Lio/netty/channel/ChannelId;Z[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelId channelId
        start local 2 // boolean hasDisconnect
        start local 3 // io.netty.channel.ChannelHandler[] handlers
         0: .line 148
            aload 0 /* this */
            aload 1 /* channelId */
            iconst_1
            iload 2 /* hasDisconnect */
            aload 3 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:(Lio/netty/channel/ChannelId;ZZ[Lio/netty/channel/ChannelHandler;)V
         1: .line 149
            return
        end local 3 // io.netty.channel.ChannelHandler[] handlers
        end local 2 // boolean hasDisconnect
        end local 1 // io.netty.channel.ChannelId channelId
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1      channelId  Lio/netty/channel/ChannelId;
            0    2     2  hasDisconnect  Z
            0    2     3       handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
               Name  Flags
      channelId      
      hasDisconnect  
      handlers       

  public void <init>(io.netty.channel.ChannelId, boolean, boolean, io.netty.channel.ChannelHandler[]);
    descriptor: (Lio/netty/channel/ChannelId;ZZ[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelId channelId
        start local 2 // boolean register
        start local 3 // boolean hasDisconnect
        start local 4 // io.netty.channel.ChannelHandler[] handlers
         0: .line 164
            aload 0 /* this */
            aconst_null
            aload 1 /* channelId */
            invokespecial io.netty.channel.AbstractChannel.<init>:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelId;)V
         1: .line 62
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedEventLoop
            dup
            invokespecial io.netty.channel.embedded.EmbeddedEventLoop.<init>:()V
            putfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
         2: .line 63
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedChannel$1
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.embedded.EmbeddedChannel$1.<init>:(Lio/netty/channel/embedded/EmbeddedChannel;)V
            putfield io.netty.channel.embedded.EmbeddedChannel.recordExceptionListener:Lio/netty/channel/ChannelFutureListener;
         3: .line 165
            aload 0 /* this */
            iload 3 /* hasDisconnect */
            invokestatic io.netty.channel.embedded.EmbeddedChannel.metadata:(Z)Lio/netty/channel/ChannelMetadata;
            putfield io.netty.channel.embedded.EmbeddedChannel.metadata:Lio/netty/channel/ChannelMetadata;
         4: .line 166
            aload 0 /* this */
            new io.netty.channel.DefaultChannelConfig
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.DefaultChannelConfig.<init>:(Lio/netty/channel/Channel;)V
            putfield io.netty.channel.embedded.EmbeddedChannel.config:Lio/netty/channel/ChannelConfig;
         5: .line 167
            aload 0 /* this */
            iload 2 /* register */
            aload 4 /* handlers */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.setup:(Z[Lio/netty/channel/ChannelHandler;)V
         6: .line 168
            return
        end local 4 // io.netty.channel.ChannelHandler[] handlers
        end local 3 // boolean hasDisconnect
        end local 2 // boolean register
        end local 1 // io.netty.channel.ChannelId channelId
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    7     1      channelId  Lio/netty/channel/ChannelId;
            0    7     2       register  Z
            0    7     3  hasDisconnect  Z
            0    7     4       handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
               Name  Flags
      channelId      
      register       
      hasDisconnect  
      handlers       final

  public void <init>(io.netty.channel.ChannelId, boolean, io.netty.channel.ChannelConfig, io.netty.channel.ChannelHandler[]);
    descriptor: (Lio/netty/channel/ChannelId;ZLio/netty/channel/ChannelConfig;[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelId channelId
        start local 2 // boolean hasDisconnect
        start local 3 // io.netty.channel.ChannelConfig config
        start local 4 // io.netty.channel.ChannelHandler[] handlers
         0: .line 182
            aload 0 /* this */
            aconst_null
            aload 1 /* channelId */
            invokespecial io.netty.channel.AbstractChannel.<init>:(Lio/netty/channel/Channel;Lio/netty/channel/ChannelId;)V
         1: .line 62
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedEventLoop
            dup
            invokespecial io.netty.channel.embedded.EmbeddedEventLoop.<init>:()V
            putfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
         2: .line 63
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedChannel$1
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.embedded.EmbeddedChannel$1.<init>:(Lio/netty/channel/embedded/EmbeddedChannel;)V
            putfield io.netty.channel.embedded.EmbeddedChannel.recordExceptionListener:Lio/netty/channel/ChannelFutureListener;
         3: .line 183
            aload 0 /* this */
            iload 2 /* hasDisconnect */
            invokestatic io.netty.channel.embedded.EmbeddedChannel.metadata:(Z)Lio/netty/channel/ChannelMetadata;
            putfield io.netty.channel.embedded.EmbeddedChannel.metadata:Lio/netty/channel/ChannelMetadata;
         4: .line 184
            aload 0 /* this */
            aload 3 /* config */
            ldc "config"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast io.netty.channel.ChannelConfig
            putfield io.netty.channel.embedded.EmbeddedChannel.config:Lio/netty/channel/ChannelConfig;
         5: .line 185
            aload 0 /* this */
            iconst_1
            aload 4 /* handlers */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.setup:(Z[Lio/netty/channel/ChannelHandler;)V
         6: .line 186
            return
        end local 4 // io.netty.channel.ChannelHandler[] handlers
        end local 3 // io.netty.channel.ChannelConfig config
        end local 2 // boolean hasDisconnect
        end local 1 // io.netty.channel.ChannelId channelId
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    7     1      channelId  Lio/netty/channel/ChannelId;
            0    7     2  hasDisconnect  Z
            0    7     3         config  Lio/netty/channel/ChannelConfig;
            0    7     4       handlers  [Lio/netty/channel/ChannelHandler;
    MethodParameters:
               Name  Flags
      channelId      
      hasDisconnect  
      config         final
      handlers       final

  private static io.netty.channel.ChannelMetadata metadata(boolean);
    descriptor: (Z)Lio/netty/channel/ChannelMetadata;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean hasDisconnect
         0: .line 189
            iload 0 /* hasDisconnect */
            ifeq 1
            getstatic io.netty.channel.embedded.EmbeddedChannel.METADATA_DISCONNECT:Lio/netty/channel/ChannelMetadata;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic io.netty.channel.embedded.EmbeddedChannel.METADATA_NO_DISCONNECT:Lio/netty/channel/ChannelMetadata;
      StackMap locals:
      StackMap stack: io.netty.channel.ChannelMetadata
         2: areturn
        end local 0 // boolean hasDisconnect
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  hasDisconnect  Z
    MethodParameters:
               Name  Flags
      hasDisconnect  

  private void setup(boolean, io.netty.channel.ChannelHandler[]);
    descriptor: (Z[Lio/netty/channel/ChannelHandler;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean register
        start local 2 // io.netty.channel.ChannelHandler[] handlers
         0: .line 193
            aload 2 /* handlers */
            ldc "handlers"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 194
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
            astore 3 /* p */
        start local 3 // io.netty.channel.ChannelPipeline p
         2: .line 195
            aload 3 /* p */
            iconst_1
            anewarray io.netty.channel.ChannelHandler
            dup
            iconst_0
            new io.netty.channel.embedded.EmbeddedChannel$2
            dup
            aload 0 /* this */
            aload 2 /* handlers */
            invokespecial io.netty.channel.embedded.EmbeddedChannel$2.<init>:(Lio/netty/channel/embedded/EmbeddedChannel;[Lio/netty/channel/ChannelHandler;)V
            aastore
            invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         3: .line 207
            iload 1 /* register */
            ifeq 6
         4: .line 208
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.register:(Lio/netty/channel/Channel;)Lio/netty/channel/ChannelFuture;
            astore 4 /* future */
        start local 4 // io.netty.channel.ChannelFuture future
         5: .line 209
            getstatic io.netty.channel.embedded.EmbeddedChannel.$assertionsDisabled:Z
            ifne 6
            aload 4 /* future */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // io.netty.channel.ChannelFuture future
         6: .line 211
      StackMap locals: io.netty.channel.ChannelPipeline
      StackMap stack:
            return
        end local 3 // io.netty.channel.ChannelPipeline p
        end local 2 // io.netty.channel.ChannelHandler[] handlers
        end local 1 // boolean register
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    7     1  register  Z
            0    7     2  handlers  [Lio/netty/channel/ChannelHandler;
            2    7     3         p  Lio/netty/channel/ChannelPipeline;
            5    6     4    future  Lio/netty/channel/ChannelFuture;
    MethodParameters:
          Name  Flags
      register  
      handlers  final

  public void register();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 217
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.register:(Lio/netty/channel/Channel;)Lio/netty/channel/ChannelFuture;
            astore 1 /* future */
        start local 1 // io.netty.channel.ChannelFuture future
         1: .line 218
            getstatic io.netty.channel.embedded.EmbeddedChannel.$assertionsDisabled:Z
            ifne 2
            aload 1 /* future */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 219
      StackMap locals: io.netty.channel.ChannelFuture
      StackMap stack:
            aload 1 /* future */
            invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
            astore 2 /* cause */
        start local 2 // java.lang.Throwable cause
         3: .line 220
            aload 2 /* cause */
            ifnull 5
         4: .line 221
            aload 2 /* cause */
            invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
         5: .line 223
      StackMap locals: java.lang.Throwable
      StackMap stack:
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelFuture future
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/netty/channel/embedded/EmbeddedChannel;
            1    6     1  future  Lio/netty/channel/ChannelFuture;
            3    6     2   cause  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Exception

  protected final io.netty.channel.DefaultChannelPipeline newChannelPipeline();
    descriptor: ()Lio/netty/channel/DefaultChannelPipeline;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 227
            new io.netty.channel.embedded.EmbeddedChannel$EmbeddedChannelPipeline
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial io.netty.channel.embedded.EmbeddedChannel$EmbeddedChannelPipeline.<init>:(Lio/netty/channel/embedded/EmbeddedChannel;Lio/netty/channel/embedded/EmbeddedChannel;)V
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public io.netty.channel.ChannelMetadata metadata();
    descriptor: ()Lio/netty/channel/ChannelMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 232
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.metadata:Lio/netty/channel/ChannelMetadata;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public io.netty.channel.ChannelConfig config();
    descriptor: ()Lio/netty/channel/ChannelConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 237
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.config:Lio/netty/channel/ChannelConfig;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 242
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.state:Lio/netty/channel/embedded/EmbeddedChannel$State;
            getstatic io.netty.channel.embedded.EmbeddedChannel$State.CLOSED:Lio/netty/channel/embedded/EmbeddedChannel$State;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public boolean isActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 247
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.state:Lio/netty/channel/embedded/EmbeddedChannel$State;
            getstatic io.netty.channel.embedded.EmbeddedChannel$State.ACTIVE:Lio/netty/channel/embedded/EmbeddedChannel$State;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public java.util.Queue<java.lang.Object> inboundMessages();
    descriptor: ()Ljava/util/Queue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 254
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            ifnonnull 2
         1: .line 255
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
         2: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Signature: ()Ljava/util/Queue<Ljava/lang/Object;>;

  public java.util.Queue<java.lang.Object> lastInboundBuffer();
    descriptor: ()Ljava/util/Queue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 265
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.inboundMessages:()Ljava/util/Queue;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Signature: ()Ljava/util/Queue<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.util.Queue<java.lang.Object> outboundMessages();
    descriptor: ()Ljava/util/Queue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 272
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            ifnonnull 2
         1: .line 273
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Signature: ()Ljava/util/Queue<Ljava/lang/Object;>;

  public java.util.Queue<java.lang.Object> lastOutboundBuffer();
    descriptor: ()Ljava/util/Queue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 283
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.outboundMessages:()Ljava/util/Queue;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Signature: ()Ljava/util/Queue<Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public <T> T readInbound();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 291
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.poll:(Ljava/util/Queue;)Ljava/lang/Object;
            astore 1 /* message */
        start local 1 // java.lang.Object message
         1: .line 292
            aload 1 /* message */
            ifnull 3
         2: .line 293
            aload 1 /* message */
            ldc "Caller of readInbound() will handle the message from this point"
            invokestatic io.netty.util.ReferenceCountUtil.touch:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 295
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* message */
            areturn
        end local 1 // java.lang.Object message
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            1    4     1  message  TT;
    Signature: <T:Ljava/lang/Object;>()TT;

  public <T> T readOutbound();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 303
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.poll:(Ljava/util/Queue;)Ljava/lang/Object;
            astore 1 /* message */
        start local 1 // java.lang.Object message
         1: .line 304
            aload 1 /* message */
            ifnull 3
         2: .line 305
            aload 1 /* message */
            ldc "Caller of readOutbound() will handle the message from this point."
            invokestatic io.netty.util.ReferenceCountUtil.touch:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 307
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* message */
            areturn
        end local 1 // java.lang.Object message
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            1    4     1  message  TT;
    Signature: <T:Ljava/lang/Object;>()TT;

  public boolean writeInbound(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object[] msgs
         0: .line 318
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.ensureOpen:()V
         1: .line 319
            aload 1 /* msgs */
            arraylength
            ifne 3
         2: .line 320
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ireturn
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
            astore 2 /* p */
        start local 2 // io.netty.channel.ChannelPipeline p
         4: .line 324
            aload 1 /* msgs */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.channel.ChannelPipeline top int int java.lang.Object[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.Object m
         6: .line 325
            aload 2 /* p */
            aload 3 /* m */
            invokeinterface io.netty.channel.ChannelPipeline.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
            pop
        end local 3 // java.lang.Object m
         7: .line 324
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 5
         9: .line 328
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.flushInbound:(ZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
        10: .line 329
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ireturn
        end local 2 // io.netty.channel.ChannelPipeline p
        end local 1 // java.lang.Object[] msgs
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0   11     1  msgs  [Ljava/lang/Object;
            4   11     2     p  Lio/netty/channel/ChannelPipeline;
            6    7     3     m  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msgs  

  public io.netty.channel.ChannelFuture writeOneInbound(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
         0: .line 339
            aload 0 /* this */
            aload 1 /* msg */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.writeOneInbound:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelFuture writeOneInbound(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 349
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkOpen:(Z)Z
            ifeq 2
         1: .line 350
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
            aload 1 /* msg */
            invokeinterface io.netty.channel.ChannelPipeline.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
            pop
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    3     1      msg  Ljava/lang/Object;
            0    3     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.embedded.EmbeddedChannel flushInbound();
    descriptor: ()Lio/netty/channel/embedded/EmbeddedChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 361
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.flushInbound:(ZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 362
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  private io.netty.channel.ChannelFuture flushInbound(boolean, io.netty.channel.ChannelPromise);
    descriptor: (ZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean recordException
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 366
            aload 0 /* this */
            iload 1 /* recordException */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkOpen:(Z)Z
            ifeq 3
         1: .line 367
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.pipeline:()Lio/netty/channel/ChannelPipeline;
            invokeinterface io.netty.channel.ChannelPipeline.fireChannelReadComplete:()Lio/netty/channel/ChannelPipeline;
            pop
         2: .line 368
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.runPendingTasks:()V
         3: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // boolean recordException
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    4     1  recordException  Z
            0    4     2          promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
                 Name  Flags
      recordException  
      promise          

  public boolean writeOutbound(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object[] msgs
         0: .line 381
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.ensureOpen:()V
         1: .line 382
            aload 1 /* msgs */
            arraylength
            ifne 3
         2: .line 383
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ireturn
         3: .line 386
      StackMap locals:
      StackMap stack:
            aload 1 /* msgs */
            arraylength
            invokestatic io.netty.util.internal.RecyclableArrayList.newInstance:(I)Lio/netty/util/internal/RecyclableArrayList;
            astore 2 /* futures */
        start local 2 // io.netty.util.internal.RecyclableArrayList futures
         4: .line 388
            aload 1 /* msgs */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.util.internal.RecyclableArrayList top int int java.lang.Object[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.Object m
         6: .line 389
            aload 3 /* m */
            ifnonnull 8
         7: .line 390
            goto 11
         8: .line 392
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.util.internal.RecyclableArrayList java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 2 /* futures */
            aload 0 /* this */
            aload 3 /* m */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            invokevirtual io.netty.util.internal.RecyclableArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Object m
         9: .line 388
            iinc 4 1
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.util.internal.RecyclableArrayList top int int java.lang.Object[]
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 5
        11: .line 395
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.util.internal.RecyclableArrayList
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.flushOutbound0:()V
        12: .line 397
            aload 2 /* futures */
            invokevirtual io.netty.util.internal.RecyclableArrayList.size:()I
            istore 3 /* size */
        start local 3 // int size
        13: .line 398
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        14: goto 21
        15: .line 399
      StackMap locals: int int
      StackMap stack:
            aload 2 /* futures */
            iload 4 /* i */
            invokevirtual io.netty.util.internal.RecyclableArrayList.get:(I)Ljava/lang/Object;
            checkcast io.netty.channel.ChannelFuture
            astore 5 /* future */
        start local 5 // io.netty.channel.ChannelFuture future
        16: .line 400
            aload 5 /* future */
            invokeinterface io.netty.channel.ChannelFuture.isDone:()Z
            ifeq 19
        17: .line 401
            aload 0 /* this */
            aload 5 /* future */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Lio/netty/channel/ChannelFuture;)V
        18: .line 402
            goto 20
        19: .line 404
      StackMap locals: io.netty.channel.ChannelFuture
      StackMap stack:
            aload 5 /* future */
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.recordExceptionListener:Lio/netty/channel/ChannelFutureListener;
            invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
            pop
        end local 5 // io.netty.channel.ChannelFuture future
        20: .line 398
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 15
        end local 4 // int i
        22: .line 408
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:()V
        23: .line 409
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            istore 8
        24: .line 411
            aload 2 /* futures */
            invokevirtual io.netty.util.internal.RecyclableArrayList.recycle:()Z
            pop
        25: .line 409
            iload 8
            ireturn
        end local 3 // int size
        26: .line 410
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel java.lang.Object[] io.netty.util.internal.RecyclableArrayList
      StackMap stack: java.lang.Throwable
            astore 7
        27: .line 411
            aload 2 /* futures */
            invokevirtual io.netty.util.internal.RecyclableArrayList.recycle:()Z
            pop
        28: .line 412
            aload 7
            athrow
        end local 2 // io.netty.util.internal.RecyclableArrayList futures
        end local 1 // java.lang.Object[] msgs
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0   29     1     msgs  [Ljava/lang/Object;
            4   29     2  futures  Lio/netty/util/internal/RecyclableArrayList;
            6    9     3        m  Ljava/lang/Object;
           13   26     3     size  I
           14   22     4        i  I
           16   20     5   future  Lio/netty/channel/ChannelFuture;
      Exception table:
        from    to  target  type
           4    24      26  any
    MethodParameters:
      Name  Flags
      msgs  

  public io.netty.channel.ChannelFuture writeOneOutbound(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
         0: .line 422
            aload 0 /* this */
            aload 1 /* msg */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.writeOneOutbound:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelFuture writeOneOutbound(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 432
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkOpen:(Z)Z
            ifeq 2
         1: .line 433
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
         2: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    3     1      msg  Ljava/lang/Object;
            0    3     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.embedded.EmbeddedChannel flushOutbound();
    descriptor: ()Lio/netty/channel/embedded/EmbeddedChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 444
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkOpen:(Z)Z
            ifeq 2
         1: .line 445
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.flushOutbound0:()V
         2: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         3: .line 448
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  private void flushOutbound0();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 454
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.runPendingTasks:()V
         1: .line 456
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.flush:()Lio/netty/channel/Channel;
            pop
         2: .line 457
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public boolean finish();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 465
            aload 0 /* this */
            iconst_0
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.finish:(Z)Z
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public boolean finishAndReleaseAll();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 475
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.finish:(Z)Z
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  private boolean finish(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean releaseAll
         0: .line 485
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.close:()Lio/netty/channel/ChannelFuture;
            pop
         1: .line 487
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:()V
         2: .line 488
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ifne 3
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ifne 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 3
         5: .line 490
            iload 1 /* releaseAll */
            ifeq 8
         6: .line 491
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            pop
         7: .line 492
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            pop
         8: .line 488
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel int top int
      StackMap stack:
            iload 3
            ireturn
         9: .line 489
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel int
      StackMap stack: java.lang.Throwable
            astore 2
        10: .line 490
            iload 1 /* releaseAll */
            ifeq 13
        11: .line 491
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            pop
        12: .line 492
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            pop
        13: .line 494
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2
            athrow
        end local 1 // boolean releaseAll
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lio/netty/channel/embedded/EmbeddedChannel;
            0   14     1  releaseAll  Z
      Exception table:
        from    to  target  type
           1     5       9  any
    MethodParameters:
            Name  Flags
      releaseAll  

  public boolean releaseInbound();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 502
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.inboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public boolean releaseOutbound();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 510
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.outboundMessages:Ljava/util/Queue;
            invokestatic io.netty.channel.embedded.EmbeddedChannel.releaseAll:(Ljava/util/Queue;)Z
            ireturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  private static boolean releaseAll(java.util.Queue<java.lang.Object>);
    descriptor: (Ljava/util/Queue;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.util.Queue queue
         0: .line 514
            aload 0 /* queue */
            invokestatic io.netty.channel.embedded.EmbeddedChannel.isNotEmpty:(Ljava/util/Queue;)Z
            ifeq 7
         1: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* queue */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            astore 1 /* msg */
        start local 1 // java.lang.Object msg
         2: .line 517
            aload 1 /* msg */
            ifnonnull 4
         3: .line 518
            goto 6
         4: .line 520
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
        end local 1 // java.lang.Object msg
         5: .line 515
            goto 1
         6: .line 522
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 524
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.util.Queue queue
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  queue  Ljava/util/Queue<Ljava/lang/Object;>;
            2    5     1    msg  Ljava/lang/Object;
    Signature: (Ljava/util/Queue<Ljava/lang/Object;>;)Z
    MethodParameters:
       Name  Flags
      queue  

  private void finishPendingTasks(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean cancel
         0: .line 528
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.runPendingTasks:()V
         1: .line 529
            iload 1 /* cancel */
            ifeq 3
         2: .line 531
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.cancelScheduledTasks:()V
         3: .line 533
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean cancel
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    4     1  cancel  Z
    MethodParameters:
        Name  Flags
      cancel  

  public final io.netty.channel.ChannelFuture close();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 537
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public final io.netty.channel.ChannelFuture disconnect();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 542
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public final io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 549
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.runPendingTasks:()V
         1: .line 550
            aload 0 /* this */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannel.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            astore 2 /* future */
        start local 2 // io.netty.channel.ChannelFuture future
         2: .line 553
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.finishPendingTasks:(Z)V
         3: .line 554
            aload 2 /* future */
            areturn
        end local 2 // io.netty.channel.ChannelFuture future
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    4     1  promise  Lio/netty/channel/ChannelPromise;
            2    4     2   future  Lio/netty/channel/ChannelFuture;
    MethodParameters:
         Name  Flags
      promise  

  public final io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 559
            aload 0 /* this */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannel.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            astore 2 /* future */
        start local 2 // io.netty.channel.ChannelFuture future
         1: .line 560
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.metadata:Lio/netty/channel/ChannelMetadata;
            invokevirtual io.netty.channel.ChannelMetadata.hasDisconnect:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel io.netty.channel.ChannelPromise io.netty.channel.ChannelFuture
      StackMap stack: io.netty.channel.embedded.EmbeddedChannel
         2: iconst_1
      StackMap locals: io.netty.channel.embedded.EmbeddedChannel io.netty.channel.ChannelPromise io.netty.channel.ChannelFuture
      StackMap stack: io.netty.channel.embedded.EmbeddedChannel int
         3: invokevirtual io.netty.channel.embedded.EmbeddedChannel.finishPendingTasks:(Z)V
         4: .line 561
            aload 2 /* future */
            areturn
        end local 2 // io.netty.channel.ChannelFuture future
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    5     1  promise  Lio/netty/channel/ChannelPromise;
            1    5     2   future  Lio/netty/channel/ChannelFuture;
    MethodParameters:
         Name  Flags
      promise  

  private static boolean isNotEmpty(java.util.Queue<java.lang.Object>);
    descriptor: (Ljava/util/Queue;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Queue queue
         0: .line 565
            aload 0 /* queue */
            ifnull 1
            aload 0 /* queue */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.util.Queue queue
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  queue  Ljava/util/Queue<Ljava/lang/Object;>;
    Signature: (Ljava/util/Queue<Ljava/lang/Object;>;)Z
    MethodParameters:
       Name  Flags
      queue  

  private static  poll(java.util.Queue<java.lang.Object>);
    descriptor: (Ljava/util/Queue;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Queue queue
         0: .line 569
            aload 0 /* queue */
            ifnull 1
            aload 0 /* queue */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 0 // java.util.Queue queue
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  queue  Ljava/util/Queue<Ljava/lang/Object;>;
    Signature: (Ljava/util/Queue<Ljava/lang/Object;>;)Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      queue  

  public void runPendingTasks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 578
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.runTasks:()V
         1: .line 579
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 580
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         4: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.runScheduledTasks:()J
            pop2
         5: .line 585
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 586
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         8: .line 588
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            3    4     1     e  Ljava/lang/Exception;
            7    8     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
           4     5       6  Class java.lang.Exception

  public long runScheduledPendingTasks();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 597
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.runScheduledTasks:()J
         1: lreturn
         2: .line 598
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 599
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Ljava/lang/Throwable;)V
         4: .line 600
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.loop:Lio/netty/channel/embedded/EmbeddedEventLoop;
            invokevirtual io.netty.channel.embedded.EmbeddedEventLoop.nextScheduledTask:()J
            lreturn
        end local 1 // java.lang.Exception e
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            3    5     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  private void recordException(io.netty.channel.ChannelFuture);
    descriptor: (Lio/netty/channel/ChannelFuture;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelFuture future
         0: .line 605
            aload 1 /* future */
            invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
            ifne 2
         1: .line 606
            aload 0 /* this */
            aload 1 /* future */
            invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Ljava/lang/Throwable;)V
         2: .line 608
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelFuture future
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    3     1  future  Lio/netty/channel/ChannelFuture;
    MethodParameters:
        Name  Flags
      future  

  private void recordException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Throwable cause
         0: .line 611
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.lastException:Ljava/lang/Throwable;
            ifnonnull 3
         1: .line 612
            aload 0 /* this */
            aload 1 /* cause */
            putfield io.netty.channel.embedded.EmbeddedChannel.lastException:Ljava/lang/Throwable;
         2: .line 613
            goto 7
         3: .line 614
      StackMap locals:
      StackMap stack:
            getstatic io.netty.channel.embedded.EmbeddedChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
         4: .line 615
            ldc "More than one exception was raised. Will report only the first one and log others."
         5: .line 616
            aload 1 /* cause */
         6: .line 614
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         7: .line 618
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    8     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  private io.netty.channel.ChannelFuture checkException(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 624
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.lastException:Ljava/lang/Throwable;
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         1: .line 625
            aload 2 /* t */
            ifnull 6
         2: .line 626
            aload 0 /* this */
            aconst_null
            putfield io.netty.channel.embedded.EmbeddedChannel.lastException:Ljava/lang/Throwable;
         3: .line 628
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.isVoid:()Z
            ifeq 5
         4: .line 629
            aload 2 /* t */
            invokestatic io.netty.util.internal.PlatformDependent.throwException:(Ljava/lang/Throwable;)V
         5: .line 632
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* promise */
            aload 2 /* t */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            areturn
         6: .line 635
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setSuccess:()Lio/netty/channel/ChannelPromise;
            areturn
        end local 2 // java.lang.Throwable t
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    7     1  promise  Lio/netty/channel/ChannelPromise;
            1    7     2        t  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      promise  

  public void checkException();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 642
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         1: .line 643
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  private boolean checkOpen(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // boolean recordException
         0: .line 650
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.isOpen:()Z
            ifne 4
         1: .line 651
            iload 1 /* recordException */
            ifeq 3
         2: .line 652
            aload 0 /* this */
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.recordException:(Ljava/lang/Throwable;)V
         3: .line 654
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 657
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // boolean recordException
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    5     1  recordException  Z
    MethodParameters:
                 Name  Flags
      recordException  

  protected final void ensureOpen();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 664
            aload 0 /* this */
            iconst_1
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkOpen:(Z)Z
            ifne 2
         1: .line 665
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.checkException:()V
         2: .line 667
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  protected boolean isCompatible(io.netty.channel.EventLoop);
    descriptor: (Lio/netty/channel/EventLoop;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.EventLoop loop
         0: .line 671
            aload 1 /* loop */
            instanceof io.netty.channel.embedded.EmbeddedEventLoop
            ireturn
        end local 1 // io.netty.channel.EventLoop loop
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    1     1  loop  Lio/netty/channel/EventLoop;
    MethodParameters:
      Name  Flags
      loop  

  protected java.net.SocketAddress localAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 676
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.isActive:()Z
            ifeq 1
            getstatic io.netty.channel.embedded.EmbeddedChannel.LOCAL_ADDRESS:Ljava/net/SocketAddress;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.net.SocketAddress
         2: areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  protected java.net.SocketAddress remoteAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 681
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.isActive:()Z
            ifeq 1
            getstatic io.netty.channel.embedded.EmbeddedChannel.REMOTE_ADDRESS:Ljava/net/SocketAddress;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.net.SocketAddress
         2: areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  protected void doRegister();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 686
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannel$State.ACTIVE:Lio/netty/channel/embedded/EmbeddedChannel$State;
            putfield io.netty.channel.embedded.EmbeddedChannel.state:Lio/netty/channel/embedded/EmbeddedChannel$State;
         1: .line 687
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doBind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 692
            return
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    1     1  localAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
              Name  Flags
      localAddress  

  protected void doDisconnect();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 696
            aload 0 /* this */
            getfield io.netty.channel.embedded.EmbeddedChannel.metadata:Lio/netty/channel/ChannelMetadata;
            invokevirtual io.netty.channel.ChannelMetadata.hasDisconnect:()Z
            ifne 2
         1: .line 697
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.doClose:()V
         2: .line 699
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 703
            aload 0 /* this */
            getstatic io.netty.channel.embedded.EmbeddedChannel$State.CLOSED:Lio/netty/channel/embedded/EmbeddedChannel$State;
            putfield io.netty.channel.embedded.EmbeddedChannel.state:Lio/netty/channel/embedded/EmbeddedChannel$State;
         1: .line 704
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doBeginRead();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 709
            return
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
    Exceptions:
      throws java.lang.Exception

  protected io.netty.channel.AbstractChannel$AbstractUnsafe newUnsafe();
    descriptor: ()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 713
            new io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe.<init>:(Lio/netty/channel/embedded/EmbeddedChannel;)V
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  public io.netty.channel.Channel$Unsafe unsafe();
    descriptor: ()Lio/netty/channel/Channel$Unsafe;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
         0: .line 718
            aload 0 /* this */
            invokespecial io.netty.channel.AbstractChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            checkcast io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe
            getfield io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe.wrapped:Lio/netty/channel/Channel$Unsafe;
            areturn
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/embedded/EmbeddedChannel;

  protected void doWrite(io.netty.channel.ChannelOutboundBuffer);
    descriptor: (Lio/netty/channel/ChannelOutboundBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // io.netty.channel.ChannelOutboundBuffer in
         0: .line 724
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.current:()Ljava/lang/Object;
            astore 2 /* msg */
        start local 2 // java.lang.Object msg
         1: .line 725
            aload 2 /* msg */
            ifnonnull 3
         2: .line 726
            goto 7
         3: .line 729
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.retain:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 730
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.handleOutboundMessage:(Ljava/lang/Object;)V
         5: .line 731
            aload 1 /* in */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.remove:()Z
            pop
        end local 2 // java.lang.Object msg
         6: .line 723
            goto 0
         7: .line 733
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelOutboundBuffer in
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    8     1    in  Lio/netty/channel/ChannelOutboundBuffer;
            1    6     2   msg  Ljava/lang/Object;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  protected void handleOutboundMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
         0: .line 741
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.outboundMessages:()Ljava/util/Queue;
            aload 1 /* msg */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         1: .line 742
            return
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  protected void handleInboundMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.embedded.EmbeddedChannel this
        start local 1 // java.lang.Object msg
         0: .line 748
            aload 0 /* this */
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.inboundMessages:()Ljava/util/Queue;
            aload 1 /* msg */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         1: .line 749
            return
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.embedded.EmbeddedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/embedded/EmbeddedChannel;
            0    2     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "EmbeddedChannel.java"
NestMembers:
  io.netty.channel.embedded.EmbeddedChannel$1  io.netty.channel.embedded.EmbeddedChannel$2  io.netty.channel.embedded.EmbeddedChannel$EmbeddedChannelPipeline  io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe  io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe$1  io.netty.channel.embedded.EmbeddedChannel$State
InnerClasses:
  protected abstract AbstractUnsafe = io.netty.channel.AbstractChannel$AbstractUnsafe of io.netty.channel.AbstractChannel
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
  io.netty.channel.embedded.EmbeddedChannel$1
  io.netty.channel.embedded.EmbeddedChannel$2
  private final EmbeddedChannelPipeline = io.netty.channel.embedded.EmbeddedChannel$EmbeddedChannelPipeline of io.netty.channel.embedded.EmbeddedChannel
  private final EmbeddedUnsafe = io.netty.channel.embedded.EmbeddedChannel$EmbeddedUnsafe of io.netty.channel.embedded.EmbeddedChannel
  private final State = io.netty.channel.embedded.EmbeddedChannel$State of io.netty.channel.embedded.EmbeddedChannel