public final class org.apache.cassandra.io.util.ChannelProxy extends org.apache.cassandra.utils.concurrent.SharedCloseableImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.io.util.ChannelProxy
  super_class: org.apache.cassandra.utils.concurrent.SharedCloseableImpl
{
  private final java.lang.String filePath;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.channels.FileChannel channel;
    descriptor: Ljava/nio/channels/FileChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static java.nio.channels.FileChannel openChannel(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/nio/channels/FileChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 51
            aload 0 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            iconst_1
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
         1: areturn
         2: .line 53
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 55
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Ljava/io/File;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // java.lang.String path
         0: .line 61
            aload 0 /* this */
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial org.apache.cassandra.io.util.ChannelProxy.<init>:(Ljava/io/File;)V
         1: .line 62
            return
        end local 1 // java.lang.String path
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    2     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // java.io.File file
         0: .line 66
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aload 1 /* file */
            invokestatic org.apache.cassandra.io.util.ChannelProxy.openChannel:(Ljava/io/File;)Ljava/nio/channels/FileChannel;
            invokespecial org.apache.cassandra.io.util.ChannelProxy.<init>:(Ljava/lang/String;Ljava/nio/channels/FileChannel;)V
         1: .line 67
            return
        end local 1 // java.io.File file
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    2     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  public void <init>(java.lang.String, java.nio.channels.FileChannel);
    descriptor: (Ljava/lang/String;Ljava/nio/channels/FileChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // java.lang.String filePath
        start local 2 // java.nio.channels.FileChannel channel
         0: .line 71
            aload 0 /* this */
            new org.apache.cassandra.io.util.ChannelProxy$Cleanup
            dup
            aload 1 /* filePath */
            aload 2 /* channel */
            invokespecial org.apache.cassandra.io.util.ChannelProxy$Cleanup.<init>:(Ljava/lang/String;Ljava/nio/channels/FileChannel;)V
            invokespecial org.apache.cassandra.utils.concurrent.SharedCloseableImpl.<init>:(Lorg/apache/cassandra/utils/concurrent/RefCounted$Tidy;)V
         1: .line 73
            aload 0 /* this */
            aload 1 /* filePath */
            putfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
         2: .line 74
            aload 0 /* this */
            aload 2 /* channel */
            putfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
         3: .line 75
            return
        end local 2 // java.nio.channels.FileChannel channel
        end local 1 // java.lang.String filePath
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    4     1  filePath  Ljava/lang/String;
            0    4     2   channel  Ljava/nio/channels/FileChannel;
    MethodParameters:
          Name  Flags
      filePath  
      channel   

  public void <init>(org.apache.cassandra.io.util.ChannelProxy);
    descriptor: (Lorg/apache/cassandra/io/util/ChannelProxy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // org.apache.cassandra.io.util.ChannelProxy copy
         0: .line 79
            aload 0 /* this */
            aload 1 /* copy */
            invokespecial org.apache.cassandra.utils.concurrent.SharedCloseableImpl.<init>:(Lorg/apache/cassandra/utils/concurrent/SharedCloseableImpl;)V
         1: .line 81
            aload 0 /* this */
            aload 1 /* copy */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            putfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
         2: .line 82
            aload 0 /* this */
            aload 1 /* copy */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            putfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
         3: .line 83
            return
        end local 1 // org.apache.cassandra.io.util.ChannelProxy copy
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    4     1  copy  Lorg/apache/cassandra/io/util/ChannelProxy;
    MethodParameters:
      Name  Flags
      copy  

  public org.apache.cassandra.io.util.ChannelProxy sharedCopy();
    descriptor: ()Lorg/apache/cassandra/io/util/ChannelProxy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
         0: .line 116
            new org.apache.cassandra.io.util.ChannelProxy
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.io.util.ChannelProxy.<init>:(Lorg/apache/cassandra/io/util/ChannelProxy;)V
            areturn
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;

  public java.lang.String filePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
         0: .line 121
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;

  public int read(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long position
         0: .line 129
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            aload 1 /* buffer */
            lload 2 /* position */
            invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
         1: ireturn
         2: .line 131
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         3: .line 133
            new org.apache.cassandra.io.FSReadError
            dup
            aload 4 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 4 // java.io.IOException e
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    4     1    buffer  Ljava/nio/ByteBuffer;
            0    4     2  position  J
            3    4     4         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
          Name  Flags
      buffer    
      position  

  public long transferTo(long, long, java.nio.channels.WritableByteChannel);
    descriptor: (JJLjava/nio/channels/WritableByteChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // long position
        start local 3 // long count
        start local 5 // java.nio.channels.WritableByteChannel target
         0: .line 141
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            lload 1 /* position */
            lload 3 /* count */
            aload 5 /* target */
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
         1: lreturn
         2: .line 143
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
         3: .line 145
            new org.apache.cassandra.io.FSReadError
            dup
            aload 6 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException e
        end local 5 // java.nio.channels.WritableByteChannel target
        end local 3 // long count
        end local 1 // long position
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    4     1  position  J
            0    4     3     count  J
            0    4     5    target  Ljava/nio/channels/WritableByteChannel;
            3    4     6         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      count     
      target    

  public java.nio.MappedByteBuffer map(java.nio.channels.FileChannel$MapMode, long, long);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
        start local 1 // java.nio.channels.FileChannel$MapMode mode
        start local 2 // long position
        start local 4 // long size
         0: .line 153
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            aload 1 /* mode */
            lload 2 /* position */
            lload 4 /* size */
            invokevirtual java.nio.channels.FileChannel.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
         1: areturn
         2: .line 155
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
         3: .line 157
            new org.apache.cassandra.io.FSReadError
            dup
            aload 6 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException e
        end local 4 // long size
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel$MapMode mode
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    4     1      mode  Ljava/nio/channels/FileChannel$MapMode;
            0    4     2  position  J
            0    4     4      size  J
            3    4     6         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
          Name  Flags
      mode      
      position  
      size      

  public long size();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
         0: .line 165
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.size:()J
         1: lreturn
         2: .line 167
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 169
            new org.apache.cassandra.io.FSReadError
            dup
            aload 1 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.filePath:Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public int getFileDescriptor();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
         0: .line 175
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChannelProxy.channel:Ljava/nio/channels/FileChannel;
            invokestatic org.apache.cassandra.utils.NativeLibrary.getfd:(Ljava/nio/channels/FileChannel;)I
            ireturn
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.ChannelProxy this
         0: .line 181
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.util.ChannelProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/ChannelProxy;

  public org.apache.cassandra.utils.concurrent.SharedCloseable sharedCopy();
    descriptor: ()Lorg/apache/cassandra/utils/concurrent/SharedCloseable;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.sharedCopy:()Lorg/apache/cassandra/io/util/ChannelProxy;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ChannelProxy.java"
NestMembers:
  org.apache.cassandra.io.util.ChannelProxy$Cleanup
InnerClasses:
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
  private final Cleanup = org.apache.cassandra.io.util.ChannelProxy$Cleanup of org.apache.cassandra.io.util.ChannelProxy
  public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted