public abstract class java.nio.channels.FileLock implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.nio.channels.FileLock
  super_class: java.lang.Object
{
  private final java.nio.channels.Channel channel;
    descriptor: Ljava/nio/channels/Channel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long position;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long size;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean shared;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(java.nio.channels.FileChannel, long, long, boolean);
    descriptor: (Ljava/nio/channels/FileChannel;JJZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.nio.channels.FileLock this
        start local 1 // java.nio.channels.FileChannel channel
        start local 2 // long position
        start local 4 // long size
        start local 6 // boolean shared
         0: .line 148
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 151
            aload 1 /* channel */
            ldc "Null channel"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 152
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 153
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 154
      StackMap locals: java.nio.channels.FileLock java.nio.channels.FileChannel long long int
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifge 6
         5: .line 155
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 156
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lconst_0
            lcmp
            ifge 8
         7: .line 157
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position + size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* channel */
            putfield java.nio.channels.FileLock.channel:Ljava/nio/channels/Channel;
         9: .line 159
            aload 0 /* this */
            lload 2 /* position */
            putfield java.nio.channels.FileLock.position:J
        10: .line 160
            aload 0 /* this */
            lload 4 /* size */
            putfield java.nio.channels.FileLock.size:J
        11: .line 161
            aload 0 /* this */
            iload 6 /* shared */
            putfield java.nio.channels.FileLock.shared:Z
        12: .line 162
            return
        end local 6 // boolean shared
        end local 4 // long size
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel channel
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Ljava/nio/channels/FileLock;
            0   13     1   channel  Ljava/nio/channels/FileChannel;
            0   13     2  position  J
            0   13     4      size  J
            0   13     6    shared  Z
    MethodParameters:
          Name  Flags
      channel   
      position  
      size      
      shared    

  protected void <init>(java.nio.channels.AsynchronousFileChannel, long, long, boolean);
    descriptor: (Ljava/nio/channels/AsynchronousFileChannel;JJZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.nio.channels.FileLock this
        start local 1 // java.nio.channels.AsynchronousFileChannel channel
        start local 2 // long position
        start local 4 // long size
        start local 6 // boolean shared
         0: .line 187
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 190
            aload 1 /* channel */
            ldc "Null channel"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 191
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 192
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 193
      StackMap locals: java.nio.channels.FileLock java.nio.channels.AsynchronousFileChannel long long int
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifge 6
         5: .line 194
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 195
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lconst_0
            lcmp
            ifge 8
         7: .line 196
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position + size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* channel */
            putfield java.nio.channels.FileLock.channel:Ljava/nio/channels/Channel;
         9: .line 198
            aload 0 /* this */
            lload 2 /* position */
            putfield java.nio.channels.FileLock.position:J
        10: .line 199
            aload 0 /* this */
            lload 4 /* size */
            putfield java.nio.channels.FileLock.size:J
        11: .line 200
            aload 0 /* this */
            iload 6 /* shared */
            putfield java.nio.channels.FileLock.shared:Z
        12: .line 201
            return
        end local 6 // boolean shared
        end local 4 // long size
        end local 2 // long position
        end local 1 // java.nio.channels.AsynchronousFileChannel channel
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Ljava/nio/channels/FileLock;
            0   13     1   channel  Ljava/nio/channels/AsynchronousFileChannel;
            0   13     2  position  J
            0   13     4      size  J
            0   13     6    shared  Z
    MethodParameters:
          Name  Flags
      channel   
      position  
      size      
      shared    

  public final java.nio.channels.FileChannel channel();
    descriptor: ()Ljava/nio/channels/FileChannel;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 213
            aload 0 /* this */
            getfield java.nio.channels.FileLock.channel:Ljava/nio/channels/Channel;
            instanceof java.nio.channels.FileChannel
            ifeq 1
            aload 0 /* this */
            getfield java.nio.channels.FileLock.channel:Ljava/nio/channels/Channel;
            checkcast java.nio.channels.FileChannel
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.nio.channels.FileChannel
         2: areturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/nio/channels/FileLock;

  public java.nio.channels.Channel acquiredBy();
    descriptor: ()Ljava/nio/channels/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 224
            aload 0 /* this */
            getfield java.nio.channels.FileLock.channel:Ljava/nio/channels/Channel;
            areturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/nio/channels/FileLock;

  public final long position();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 238
            aload 0 /* this */
            getfield java.nio.channels.FileLock.position:J
            lreturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/nio/channels/FileLock;

  public final long size();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 251
            aload 0 /* this */
            getfield java.nio.channels.FileLock.size:J
            lreturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/nio/channels/FileLock;

  public final boolean isShared();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 261
            aload 0 /* this */
            getfield java.nio.channels.FileLock.shared:Z
            ireturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/nio/channels/FileLock;

  public final boolean overlaps(long, long);
    descriptor: (JJ)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.nio.channels.FileLock this
        start local 1 // long position
        start local 3 // long size
         0: .line 276
            lload 1 /* position */
            lload 3 /* size */
            ladd
            aload 0 /* this */
            getfield java.nio.channels.FileLock.position:J
            lcmp
            ifgt 2
         1: .line 277
            iconst_0
            ireturn
         2: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.nio.channels.FileLock.position:J
            aload 0 /* this */
            getfield java.nio.channels.FileLock.size:J
            ladd
            lload 1 /* position */
            lcmp
            ifgt 4
         3: .line 279
            iconst_0
            ireturn
         4: .line 280
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // long size
        end local 1 // long position
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/nio/channels/FileLock;
            0    5     1  position  J
            0    5     3      size  J
    MethodParameters:
          Name  Flags
      position  
      size      

  public abstract boolean isValid();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void release();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public final void close();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 317
            aload 0 /* this */
            invokevirtual java.nio.channels.FileLock.release:()V
         1: .line 318
            return
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/nio/channels/FileLock;
    Exceptions:
      throws java.io.IOException

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.nio.channels.FileLock this
         0: .line 326
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 327
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.nio.channels.FileLock.position:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         2: .line 328
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.nio.channels.FileLock.size:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         3: .line 329
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.nio.channels.FileLock.shared:Z
            ifeq 4
            ldc "shared"
            goto 5
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         4: ldc "exclusive"
      StackMap locals: java.nio.channels.FileLock
      StackMap stack: java.lang.StringBuilder java.lang.String
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 330
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.nio.channels.FileLock.isValid:()Z
            ifeq 7
            ldc "valid"
            goto 8
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         7: ldc "invalid"
      StackMap locals: java.nio.channels.FileLock
      StackMap stack: java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 331
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 326
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.nio.channels.FileLock this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/nio/channels/FileLock;
}
SourceFile: "FileLock.java"