public abstract class io.netty.channel.oio.OioByteStreamChannel extends io.netty.channel.oio.AbstractOioByteChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.channel.oio.OioByteStreamChannel
  super_class: io.netty.channel.oio.AbstractOioByteChannel
{
  private static final java.io.InputStream CLOSED_IN;
    descriptor: Ljava/io/InputStream;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.io.OutputStream CLOSED_OUT;
    descriptor: Ljava/io/OutputStream;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.io.InputStream is;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream os;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.WritableByteChannel outChannel;
    descriptor: Ljava/nio/channels/WritableByteChannel;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 37
            new io.netty.channel.oio.OioByteStreamChannel$1
            dup
            invokespecial io.netty.channel.oio.OioByteStreamChannel$1.<init>:()V
            putstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_IN:Ljava/io/InputStream;
         1: .line 44
            new io.netty.channel.oio.OioByteStreamChannel$2
            dup
            invokespecial io.netty.channel.oio.OioByteStreamChannel$2.<init>:()V
            putstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_OUT:Ljava/io/OutputStream;
         2: .line 49
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
        start local 1 // io.netty.channel.Channel parent
         0: .line 62
            aload 0 /* this */
            aload 1 /* parent */
            invokespecial io.netty.channel.oio.AbstractOioByteChannel.<init>:(Lio/netty/channel/Channel;)V
         1: .line 63
            return
        end local 1 // io.netty.channel.Channel parent
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/netty/channel/oio/OioByteStreamChannel;
            0    2     1  parent  Lio/netty/channel/Channel;
    MethodParameters:
        Name  Flags
      parent  

  protected final void activate(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
        start local 1 // java.io.InputStream is
        start local 2 // java.io.OutputStream os
         0: .line 69
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
            ifnull 2
         1: .line 70
            new java.lang.IllegalStateException
            dup
            ldc "input was set already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
            ifnull 4
         3: .line 73
            new java.lang.IllegalStateException
            dup
            ldc "output was set already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 75
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            ifnonnull 6
         5: .line 76
            new java.lang.NullPointerException
            dup
            ldc "is"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 78
      StackMap locals:
      StackMap stack:
            aload 2 /* os */
            ifnonnull 8
         7: .line 79
            new java.lang.NullPointerException
            dup
            ldc "os"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* is */
            putfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
         9: .line 82
            aload 0 /* this */
            aload 2 /* os */
            putfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
        10: .line 83
            return
        end local 2 // java.io.OutputStream os
        end local 1 // java.io.InputStream is
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/netty/channel/oio/OioByteStreamChannel;
            0   11     1    is  Ljava/io/InputStream;
            0   11     2    os  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      is    
      os    

  public boolean isActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
         0: .line 87
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
            astore 1 /* is */
        start local 1 // java.io.InputStream is
         1: .line 88
            aload 1 /* is */
            ifnull 2
            aload 1 /* is */
            getstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_IN:Ljava/io/InputStream;
            if_acmpne 3
         2: .line 89
      StackMap locals: java.io.InputStream
      StackMap stack:
            iconst_0
            ireturn
         3: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
            astore 2 /* os */
        start local 2 // java.io.OutputStream os
         4: .line 93
            aload 2 /* os */
            ifnull 5
            aload 2 /* os */
            getstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_OUT:Ljava/io/OutputStream;
            if_acmpne 6
      StackMap locals: java.io.OutputStream
      StackMap stack:
         5: iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 2 // java.io.OutputStream os
        end local 1 // java.io.InputStream is
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/oio/OioByteStreamChannel;
            1    8     1    is  Ljava/io/InputStream;
            4    8     2    os  Ljava/io/OutputStream;

  protected int available();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
         0: .line 99
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
         1: ireturn
         2: .line 100
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 101
            iconst_0
            ireturn
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/oio/OioByteStreamChannel;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  protected int doReadBytes(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
        start local 1 // io.netty.buffer.ByteBuf buf
         0: .line 107
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.OioByteStreamChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.recvBufAllocHandle:()Lio/netty/channel/RecvByteBufAllocator$Handle;
            astore 2 /* allocHandle */
        start local 2 // io.netty.channel.RecvByteBufAllocator$Handle allocHandle
         1: .line 108
            aload 2 /* allocHandle */
            iconst_1
            aload 0 /* this */
            invokevirtual io.netty.channel.oio.OioByteStreamChannel.available:()I
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.maxWritableBytes:()I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.attemptedBytesRead:(I)V
         2: .line 109
            aload 1 /* buf */
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
            aload 2 /* allocHandle */
            invokeinterface io.netty.channel.RecvByteBufAllocator$Handle.attemptedBytesRead:()I
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Ljava/io/InputStream;I)I
            ireturn
        end local 2 // io.netty.channel.RecvByteBufAllocator$Handle allocHandle
        end local 1 // io.netty.buffer.ByteBuf buf
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/netty/channel/oio/OioByteStreamChannel;
            0    3     1          buf  Lio/netty/buffer/ByteBuf;
            1    3     2  allocHandle  Lio/netty/channel/RecvByteBufAllocator$Handle;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      buf   

  protected void doWriteBytes(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
        start local 1 // io.netty.buffer.ByteBuf buf
         0: .line 114
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
            astore 2 /* os */
        start local 2 // java.io.OutputStream os
         1: .line 115
            aload 2 /* os */
            ifnonnull 3
         2: .line 116
            new java.nio.channels.NotYetConnectedException
            dup
            invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
            athrow
         3: .line 118
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 1 /* buf */
            aload 2 /* os */
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            invokevirtual io.netty.buffer.ByteBuf.readBytes:(Ljava/io/OutputStream;I)Lio/netty/buffer/ByteBuf;
            pop
         4: .line 119
            return
        end local 2 // java.io.OutputStream os
        end local 1 // io.netty.buffer.ByteBuf buf
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/oio/OioByteStreamChannel;
            0    5     1   buf  Lio/netty/buffer/ByteBuf;
            1    5     2    os  Ljava/io/OutputStream;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      buf   

  protected void doWriteFileRegion(io.netty.channel.FileRegion);
    descriptor: (Lio/netty/channel/FileRegion;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
        start local 1 // io.netty.channel.FileRegion region
         0: .line 123
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
            astore 2 /* os */
        start local 2 // java.io.OutputStream os
         1: .line 124
            aload 2 /* os */
            ifnonnull 3
         2: .line 125
            new java.nio.channels.NotYetConnectedException
            dup
            invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
            athrow
         3: .line 127
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.outChannel:Ljava/nio/channels/WritableByteChannel;
            ifnonnull 5
         4: .line 128
            aload 0 /* this */
            aload 2 /* os */
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            putfield io.netty.channel.oio.OioByteStreamChannel.outChannel:Ljava/nio/channels/WritableByteChannel;
         5: .line 131
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 3 /* written */
        start local 3 // long written
         6: .line 133
      StackMap locals: long
      StackMap stack:
            aload 1 /* region */
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.outChannel:Ljava/nio/channels/WritableByteChannel;
            lload 3 /* written */
            invokeinterface io.netty.channel.FileRegion.transferTo:(Ljava/nio/channels/WritableByteChannel;J)J
            lstore 5 /* localWritten */
        start local 5 // long localWritten
         7: .line 134
            lload 5 /* localWritten */
            ldc -1
            lcmp
            ifne 10
         8: .line 135
            aload 1 /* region */
            invokestatic io.netty.channel.oio.OioByteStreamChannel.checkEOF:(Lio/netty/channel/FileRegion;)V
         9: .line 136
            return
        10: .line 138
      StackMap locals: long
      StackMap stack:
            lload 3 /* written */
            lload 5 /* localWritten */
            ladd
            lstore 3 /* written */
        11: .line 140
            lload 3 /* written */
            aload 1 /* region */
            invokeinterface io.netty.channel.FileRegion.count:()J
            lcmp
            iflt 6
        12: .line 141
            return
        end local 5 // long localWritten
        end local 3 // long written
        end local 2 // java.io.OutputStream os
        end local 1 // io.netty.channel.FileRegion region
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lio/netty/channel/oio/OioByteStreamChannel;
            0   13     1        region  Lio/netty/channel/FileRegion;
            1   13     2            os  Ljava/io/OutputStream;
            6   13     3       written  J
            7   13     5  localWritten  J
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      region  

  private static void checkEOF(io.netty.channel.FileRegion);
    descriptor: (Lio/netty/channel/FileRegion;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.netty.channel.FileRegion region
         0: .line 147
            aload 0 /* region */
            invokeinterface io.netty.channel.FileRegion.transferred:()J
            aload 0 /* region */
            invokeinterface io.netty.channel.FileRegion.count:()J
            lcmp
            ifge 4
         1: .line 148
            new java.io.EOFException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected to be able to write "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* region */
            invokeinterface io.netty.channel.FileRegion.count:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " bytes, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 149
            ldc "but only wrote "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* region */
            invokeinterface io.netty.channel.FileRegion.transferred:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 148
            invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 151
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.FileRegion region
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  region  Lio/netty/channel/FileRegion;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      region  

  protected void doClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // io.netty.channel.oio.OioByteStreamChannel this
         0: .line 155
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
            astore 1 /* is */
        start local 1 // java.io.InputStream is
         1: .line 156
            aload 0 /* this */
            getfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
            astore 2 /* os */
        start local 2 // java.io.OutputStream os
         2: .line 157
            aload 0 /* this */
            getstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_IN:Ljava/io/InputStream;
            putfield io.netty.channel.oio.OioByteStreamChannel.is:Ljava/io/InputStream;
         3: .line 158
            aload 0 /* this */
            getstatic io.netty.channel.oio.OioByteStreamChannel.CLOSED_OUT:Ljava/io/OutputStream;
            putfield io.netty.channel.oio.OioByteStreamChannel.os:Ljava/io/OutputStream;
         4: .line 161
            aload 1 /* is */
            ifnull 11
         5: .line 162
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
         6: .line 164
            goto 11
      StackMap locals: io.netty.channel.oio.OioByteStreamChannel java.io.InputStream java.io.OutputStream
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 165
            aload 2 /* os */
            ifnull 10
         9: .line 166
            aload 2 /* os */
            invokevirtual java.io.OutputStream.close:()V
        10: .line 168
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        11: .line 165
      StackMap locals:
      StackMap stack:
            aload 2 /* os */
            ifnull 13
        12: .line 166
            aload 2 /* os */
            invokevirtual java.io.OutputStream.close:()V
        13: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.OutputStream os
        end local 1 // java.io.InputStream is
        end local 0 // io.netty.channel.oio.OioByteStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lio/netty/channel/oio/OioByteStreamChannel;
            1   14     1    is  Ljava/io/InputStream;
            2   14     2    os  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           4     7       7  any
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "OioByteStreamChannel.java"
NestMembers:
  io.netty.channel.oio.OioByteStreamChannel$1  io.netty.channel.oio.OioByteStreamChannel$2
InnerClasses:
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
  public abstract Handle = io.netty.channel.RecvByteBufAllocator$Handle of io.netty.channel.RecvByteBufAllocator
  io.netty.channel.oio.OioByteStreamChannel$1
  io.netty.channel.oio.OioByteStreamChannel$2