public class org.eclipse.jgit.internal.storage.file.FileSnapshot
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jgit.internal.storage.file.FileSnapshot
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger LOG;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final long UNKNOWN_SIZE;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final java.time.Instant UNKNOWN_TIME;
    descriptor: Ljava/time/Instant;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object MISSING_FILEKEY;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.time.format.DateTimeFormatter dateFmt;
    descriptor: Ljava/time/format/DateTimeFormatter;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.eclipse.jgit.internal.storage.file.FileSnapshot DIRTY;
    descriptor: Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.eclipse.jgit.internal.storage.file.FileSnapshot MISSING_FILE;
    descriptor: Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.time.Instant lastModified;
    descriptor: Ljava/time/Instant;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.time.Instant lastRead;
    descriptor: Ljava/time/Instant;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private boolean cannotBeRacilyClean;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private org.eclipse.jgit.util.FS$FileStoreAttributes fileStoreAttributeCache;
    descriptor: Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object fileKey;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean sizeChanged;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean fileKeyChanged;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean lastModifiedChanged;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean wasRacyClean;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long delta;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long racyThreshold;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 83
            ldc Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
         1: .line 82
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
         2: .line 91
            ldc -1
            invokestatic java.time.Instant.ofEpochMilli:(J)Ljava/time/Instant;
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.UNKNOWN_TIME:Ljava/time/Instant;
         3: .line 93
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
         4: .line 96
            ldc "yyyy-MM-dd HH:mm:ss.nnnnnnnnn"
            invokestatic java.time.format.DateTimeFormatter.ofPattern:(Ljava/lang/String;)Ljava/time/format/DateTimeFormatter;
         5: .line 97
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokevirtual java.time.format.DateTimeFormatter.withLocale:(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter;
            invokestatic java.time.ZoneId.systemDefault:()Ljava/time/ZoneId;
            invokevirtual java.time.format.DateTimeFormatter.withZone:(Ljava/time/ZoneId;)Ljava/time/format/DateTimeFormatter;
         6: .line 95
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
         7: .line 106
            new org.eclipse.jgit.internal.storage.file.FileSnapshot
            dup
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.UNKNOWN_TIME:Ljava/time/Instant;
         8: .line 107
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.UNKNOWN_TIME:Ljava/time/Instant;
            ldc -1
            getstatic java.time.Duration.ZERO:Ljava/time/Duration;
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
         9: .line 106
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/time/Instant;Ljava/time/Instant;JLjava/time/Duration;Ljava/lang/Object;)V
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.DIRTY:Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
        10: .line 116
            new org.eclipse.jgit.internal.storage.file.FileSnapshot$1
            dup
        11: .line 117
            getstatic java.time.Instant.EPOCH:Ljava/time/Instant;
            getstatic java.time.Instant.EPOCH:Ljava/time/Instant;
            lconst_0
            getstatic java.time.Duration.ZERO:Ljava/time/Duration;
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
        12: .line 116
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot$1.<init>:(Ljava/time/Instant;Ljava/time/Instant;JLjava/time/Duration;Ljava/lang/Object;)V
            putstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILE:Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
        13: .line 122
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.eclipse.jgit.internal.storage.file.FileSnapshot save(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.File path
         0: .line 135
            new org.eclipse.jgit.internal.storage.file.FileSnapshot
            dup
            aload 0 /* path */
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/io/File;)V
            areturn
        end local 0 // java.io.File path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Ljava/io/File;
    MethodParameters:
      Name  Flags
      path  

  public static org.eclipse.jgit.internal.storage.file.FileSnapshot saveNoConfig(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.File path
         0: .line 151
            new org.eclipse.jgit.internal.storage.file.FileSnapshot
            dup
            aload 0 /* path */
            iconst_0
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/io/File;Z)V
            areturn
        end local 0 // java.io.File path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Ljava/io/File;
    MethodParameters:
      Name  Flags
      path  

  private static java.lang.Object getFileKey(java.nio.file.attribute.BasicFileAttributes);
    descriptor: (Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.nio.file.attribute.BasicFileAttributes fileAttributes
         0: .line 155
            aload 0 /* fileAttributes */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.fileKey:()Ljava/lang/Object;
            astore 1 /* fileKey */
        start local 1 // java.lang.Object fileKey
         1: .line 156
            aload 1 /* fileKey */
            ifnonnull 2
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: aload 1 /* fileKey */
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 1 // java.lang.Object fileKey
        end local 0 // java.nio.file.attribute.BasicFileAttributes fileAttributes
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  fileAttributes  Ljava/nio/file/attribute/BasicFileAttributes;
            1    4     1         fileKey  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      fileAttributes  

  public static org.eclipse.jgit.internal.storage.file.FileSnapshot save(long);
    descriptor: (J)Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // long modified
         0: .line 177
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            astore 2 /* read */
        start local 2 // java.time.Instant read
         1: .line 178
            new org.eclipse.jgit.internal.storage.file.FileSnapshot
            dup
            aload 2 /* read */
            lload 0 /* modified */
            invokestatic java.time.Instant.ofEpochMilli:(J)Ljava/time/Instant;
         2: .line 179
            ldc -1
            getstatic org.eclipse.jgit.util.FS$FileStoreAttributes.FALLBACK_TIMESTAMP_RESOLUTION:Ljava/time/Duration;
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
         3: .line 178
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/time/Instant;Ljava/time/Instant;JLjava/time/Duration;Ljava/lang/Object;)V
            areturn
        end local 2 // java.time.Instant read
        end local 0 // long modified
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  modified  J
            1    4     2      read  Ljava/time/Instant;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      modified  

  public static org.eclipse.jgit.internal.storage.file.FileSnapshot save(java.time.Instant);
    descriptor: (Ljava/time/Instant;)Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // java.time.Instant modified
         0: .line 198
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            astore 1 /* read */
        start local 1 // java.time.Instant read
         1: .line 199
            new org.eclipse.jgit.internal.storage.file.FileSnapshot
            dup
            aload 1 /* read */
            aload 0 /* modified */
            ldc -1
         2: .line 200
            getstatic org.eclipse.jgit.util.FS$FileStoreAttributes.FALLBACK_TIMESTAMP_RESOLUTION:Ljava/time/Duration;
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
         3: .line 199
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/time/Instant;Ljava/time/Instant;JLjava/time/Duration;Ljava/lang/Object;)V
            areturn
        end local 1 // java.time.Instant read
        end local 0 // java.time.Instant modified
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  modified  Ljava/time/Instant;
            1    4     1      read  Ljava/time/Instant;
    MethodParameters:
          Name  Flags
      modified  

  protected void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.io.File file
         0: .line 238
            aload 0 /* this */
            aload 1 /* file */
            iconst_1
            invokespecial org.eclipse.jgit.internal.storage.file.FileSnapshot.<init>:(Ljava/io/File;Z)V
         1: .line 239
            return
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0    2     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  protected void <init>(java.io.File, boolean);
    descriptor: (Ljava/io/File;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.io.File file
        start local 2 // boolean useConfig
         0: .line 253
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 254
            aload 0 /* this */
            aload 1 /* file */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
         2: .line 255
            aload 0 /* this */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
         3: .line 256
            aload 0 /* this */
            iload 2 /* useConfig */
            ifeq 5
         4: .line 257
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            invokestatic org.eclipse.jgit.util.FS.getFileStoreAttributes:(Ljava/nio/file/Path;)Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
            goto 6
         5: .line 258
      StackMap locals: org.eclipse.jgit.internal.storage.file.FileSnapshot java.io.File int
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot
            getstatic org.eclipse.jgit.util.FS$FileStoreAttributes.FALLBACK_FILESTORE_ATTRIBUTES:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
         6: .line 256
      StackMap locals: org.eclipse.jgit.internal.storage.file.FileSnapshot java.io.File int
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot org.eclipse.jgit.util.FS$FileStoreAttributes
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileStoreAttributeCache:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
         7: .line 259
            aconst_null
            astore 3 /* fileAttributes */
        start local 3 // java.nio.file.attribute.BasicFileAttributes fileAttributes
         8: .line 261
            getstatic org.eclipse.jgit.util.FS.DETECTED:Lorg/eclipse/jgit/util/FS;
            aload 1 /* file */
            invokevirtual org.eclipse.jgit.util.FS.fileAttributes:(Ljava/io/File;)Ljava/nio/file/attribute/BasicFileAttributes;
            astore 3 /* fileAttributes */
         9: .line 262
            goto 15
      StackMap locals: org.eclipse.jgit.internal.storage.file.FileSnapshot java.io.File int java.nio.file.attribute.BasicFileAttributes
      StackMap stack: java.io.IOException
        10: pop
        11: .line 263
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokestatic java.time.Instant.ofEpochMilli:(J)Ljava/time/Instant;
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
        12: .line 264
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual java.io.File.length:()J
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
        13: .line 265
            aload 0 /* this */
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
        14: .line 266
            return
        15: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* fileAttributes */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.lastModifiedTime:()Ljava/nio/file/attribute/FileTime;
            invokevirtual java.nio.file.attribute.FileTime.toInstant:()Ljava/time/Instant;
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
        16: .line 269
            aload 0 /* this */
            aload 3 /* fileAttributes */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.size:()J
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
        17: .line 270
            aload 0 /* this */
            aload 3 /* fileAttributes */
            invokestatic org.eclipse.jgit.internal.storage.file.FileSnapshot.getFileKey:(Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/Object;
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
        18: .line 271
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 24
        19: .line 272
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, create new FileSnapshot: lastRead={}, lastModified={}, size={}, fileKey={}"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 273
            aload 1 /* file */
            aastore
            dup
            iconst_1
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        21: .line 274
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
        22: .line 275
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        23: .line 272
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        24: .line 277
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.file.attribute.BasicFileAttributes fileAttributes
        end local 2 // boolean useConfig
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   25     1            file  Ljava/io/File;
            0   25     2       useConfig  Z
            8   25     3  fileAttributes  Ljava/nio/file/attribute/BasicFileAttributes;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
    MethodParameters:
           Name  Flags
      file       
      useConfig  

  private void <init>(java.time.Instant, java.time.Instant, long, java.time.Duration, java.lang.Object);
    descriptor: (Ljava/time/Instant;Ljava/time/Instant;JLjava/time/Duration;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.time.Instant read
        start local 2 // java.time.Instant modified
        start local 3 // long size
        start local 5 // java.time.Duration fsTimestampResolution
        start local 6 // java.lang.Object fileKey
         0: .line 291
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 293
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
         2: .line 294
            aload 0 /* this */
            aload 1 /* read */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
         3: .line 295
            aload 0 /* this */
            aload 2 /* modified */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
         4: .line 296
            aload 0 /* this */
            new org.eclipse.jgit.util.FS$FileStoreAttributes
            dup
         5: .line 297
            aload 5 /* fsTimestampResolution */
            invokespecial org.eclipse.jgit.util.FS$FileStoreAttributes.<init>:(Ljava/time/Duration;)V
         6: .line 296
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileStoreAttributeCache:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
         7: .line 298
            aload 0 /* this */
            lload 3 /* size */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
         8: .line 299
            aload 0 /* this */
            aload 6 /* fileKey */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
         9: .line 300
            return
        end local 6 // java.lang.Object fileKey
        end local 5 // java.time.Duration fsTimestampResolution
        end local 3 // long size
        end local 2 // java.time.Instant modified
        end local 1 // java.time.Instant read
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   10     1                   read  Ljava/time/Instant;
            0   10     2               modified  Ljava/time/Instant;
            0   10     3                   size  J
            0   10     5  fsTimestampResolution  Ljava/time/Duration;
            0   10     6                fileKey  Ljava/lang/Object;
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        org.eclipse.jgit.annotations.NonNull()
      4:
        org.eclipse.jgit.annotations.NonNull()
    MethodParameters:
                       Name  Flags
      read                   
      modified               
      size                   
      fsTimestampResolution  
      fileKey                

  public long lastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 310
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.Instant.toEpochMilli:()J
            lreturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.time.Instant lastModifiedInstant();
    descriptor: ()Ljava/time/Instant;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 319
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            areturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  public long size();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 326
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            lreturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  public boolean isModified(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.io.File path
         0: .line 341
            getstatic org.eclipse.jgit.util.FS.DETECTED:Lorg/eclipse/jgit/util/FS;
            aload 1 /* path */
            invokevirtual org.eclipse.jgit.util.FS.fileAttributes:(Ljava/io/File;)Ljava/nio/file/attribute/BasicFileAttributes;
            astore 6 /* fileAttributes */
        start local 6 // java.nio.file.attribute.BasicFileAttributes fileAttributes
         1: .line 342
            aload 6 /* fileAttributes */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.lastModifiedTime:()Ljava/nio/file/attribute/FileTime;
            invokevirtual java.nio.file.attribute.FileTime.toInstant:()Ljava/time/Instant;
            astore 2 /* currLastModified */
        start local 2 // java.time.Instant currLastModified
         2: .line 343
            aload 6 /* fileAttributes */
            invokeinterface java.nio.file.attribute.BasicFileAttributes.size:()J
            lstore 3 /* currSize */
        start local 3 // long currSize
         3: .line 344
            aload 6 /* fileAttributes */
            invokestatic org.eclipse.jgit.internal.storage.file.FileSnapshot.getFileKey:(Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/Object;
            astore 5 /* currFileKey */
        end local 6 // java.nio.file.attribute.BasicFileAttributes fileAttributes
        start local 5 // java.lang.Object currFileKey
         4: .line 345
            goto 9
        end local 5 // java.lang.Object currFileKey
        end local 3 // long currSize
        end local 2 // java.time.Instant currLastModified
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 346
            aload 1 /* path */
            invokevirtual java.io.File.lastModified:()J
            invokestatic java.time.Instant.ofEpochMilli:(J)Ljava/time/Instant;
            astore 2 /* currLastModified */
        start local 2 // java.time.Instant currLastModified
         7: .line 347
            aload 1 /* path */
            invokevirtual java.io.File.length:()J
            lstore 3 /* currSize */
        start local 3 // long currSize
         8: .line 348
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
            astore 5 /* currFileKey */
        start local 5 // java.lang.Object currFileKey
         9: .line 350
      StackMap locals: java.time.Instant long java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            lload 3 /* currSize */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isSizeChanged:(J)Z
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.sizeChanged:Z
        10: .line 351
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.sizeChanged:Z
            ifeq 12
        11: .line 352
            iconst_1
            ireturn
        12: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* currFileKey */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isFileKeyChanged:(Ljava/lang/Object;)Z
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKeyChanged:Z
        13: .line 355
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKeyChanged:Z
            ifeq 15
        14: .line 356
            iconst_1
            ireturn
        15: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* currLastModified */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isModified:(Ljava/time/Instant;)Z
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModifiedChanged:Z
        16: .line 359
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModifiedChanged:Z
            ifeq 18
        17: .line 360
            iconst_1
            ireturn
        18: .line 362
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // java.lang.Object currFileKey
        end local 3 // long currSize
        end local 2 // java.time.Instant currLastModified
        end local 1 // java.io.File path
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   19     1              path  Ljava/io/File;
            2    5     2  currLastModified  Ljava/time/Instant;
            7   19     2  currLastModified  Ljava/time/Instant;
            3    5     3          currSize  J
            8   19     3          currSize  J
            4    5     5       currFileKey  Ljava/lang/Object;
            9   19     5       currFileKey  Ljava/lang/Object;
            1    4     6    fileAttributes  Ljava/nio/file/attribute/BasicFileAttributes;
      Exception table:
        from    to  target  type
           0     4       5  Class java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  public void setClean(org.eclipse.jgit.internal.storage.file.FileSnapshot);
    descriptor: (Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
         0: .line 388
            aload 1 /* other */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
            astore 2 /* now */
        start local 2 // java.time.Instant now
         1: .line 389
            aload 0 /* this */
            aload 2 /* now */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isRacyClean:(Ljava/time/Instant;)Z
            ifne 3
         2: .line 390
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.cannotBeRacilyClean:Z
         3: .line 392
      StackMap locals: java.time.Instant
      StackMap stack:
            aload 0 /* this */
            aload 2 /* now */
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
         4: .line 393
            return
        end local 2 // java.time.Instant now
        end local 1 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0    5     1  other  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            1    5     2    now  Ljava/time/Instant;
    MethodParameters:
       Name  Flags
      other  

  public void waitUntilNotRacy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 402
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileStoreAttributeCache:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
         1: .line 403
            invokevirtual org.eclipse.jgit.util.FS$FileStoreAttributes.getFsTimestampResolution:()Ljava/time/Duration;
            invokevirtual java.time.Duration.toNanos:()J
         2: .line 402
            lstore 1 /* timestampResolution */
        start local 1 // long timestampResolution
         3: .line 404
            goto 5
         4: .line 405
      StackMap locals: long
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* timestampResolution */
            invokevirtual java.util.concurrent.TimeUnit.sleep:(J)V
         5: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isRacyClean:(Ljava/time/Instant;)Z
            ifne 4
         6: .line 407
            return
        end local 1 // long timestampResolution
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            3    7     1  timestampResolution  J
    Exceptions:
      throws java.lang.InterruptedException

  public boolean equals(org.eclipse.jgit.internal.storage.file.FileSnapshot);
    descriptor: (Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
         0: .line 418
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            ldc -1
            lcmp
            ifeq 1
            aload 1 /* other */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            ldc -1
            lcmp
            ifeq 1
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            aload 1 /* other */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            lcmp
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* sizeEq */
        start local 2 // boolean sizeEq
         3: .line 419
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            aload 1 /* other */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.Instant.equals:(Ljava/lang/Object;)Z
            ifeq 6
            iload 2 /* sizeEq */
            ifeq 6
         4: .line 420
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            aload 1 /* other */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 6
         5: .line 419
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // boolean sizeEq
        end local 1 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0    7     1   other  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            3    7     2  sizeEq  Z
    MethodParameters:
       Name  Flags
      other  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.lang.Object obj
         0: .line 426
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 427
            iconst_1
            ireturn
         2: .line 429
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 4
         3: .line 430
            iconst_0
            ireturn
         4: .line 432
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.eclipse.jgit.internal.storage.file.FileSnapshot
            ifne 6
         5: .line 433
            iconst_0
            ireturn
         6: .line 435
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.eclipse.jgit.internal.storage.file.FileSnapshot
            astore 2 /* other */
        start local 2 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
         7: .line 436
            aload 0 /* this */
            aload 2 /* other */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.equals:(Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;)Z
            ireturn
        end local 2 // org.eclipse.jgit.internal.storage.file.FileSnapshot other
        end local 1 // java.lang.Object obj
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0    8     1    obj  Ljava/lang/Object;
            7    8     2  other  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 442
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            aastore
            invokestatic java.util.Objects.hash:([Ljava/lang/Object;)I
            ireturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  boolean wasSizeChanged();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 450
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.sizeChanged:Z
            ireturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  boolean wasFileKeyChanged();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 458
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKeyChanged:Z
            ireturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  boolean wasLastModifiedChanged();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 466
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModifiedChanged:Z
            ireturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  boolean wasLastModifiedRacilyClean();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 474
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.wasRacyClean:Z
            ireturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  public long lastDelta();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 482
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.delta:J
            lreturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  public long lastRacyThreshold();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 490
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.racyThreshold:J
            lreturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 497
            aload 0 /* this */
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.DIRTY:Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            if_acmpne 2
         1: .line 498
            ldc "DIRTY"
            areturn
         2: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILE:Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            if_acmpne 4
         3: .line 501
            ldc "MISSING_FILE"
            areturn
         4: .line 503
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "FileSnapshot[modified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 504
            ldc ", read: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", size:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         6: .line 505
            ldc ", fileKey: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 503
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;

  private boolean isRacyClean(java.time.Instant);
    descriptor: (Ljava/time/Instant;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.time.Instant read
         0: .line 509
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.getEffectiveRacyThreshold:()J
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.racyThreshold:J
         1: .line 510
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            aload 1 /* read */
            invokestatic java.time.Duration.between:(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration;
            invokevirtual java.time.Duration.toNanos:()J
            putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.delta:J
         2: .line 511
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.delta:J
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.racyThreshold:J
            lcmp
            ifgt 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot
         3: iconst_0
      StackMap locals: org.eclipse.jgit.internal.storage.file.FileSnapshot java.time.Instant
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot int
         4: putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.wasRacyClean:Z
         5: .line 512
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 12
         6: .line 513
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
         7: .line 514
            ldc "file={}, isRacyClean={}, read={}, lastModified={}, delta={} ns, racy<={} ns"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 515
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.wasRacyClean:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_2
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 1 /* read */
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
            dup
            iconst_3
         9: .line 516
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.delta:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_5
        10: .line 517
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.racyThreshold:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        11: .line 513
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.wasRacyClean:Z
            ireturn
        end local 1 // java.time.Instant read
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   13     1  read  Ljava/time/Instant;
    MethodParameters:
      Name  Flags
      read  

  private long getEffectiveRacyThreshold();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
         0: .line 523
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileStoreAttributeCache:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
         1: .line 524
            invokevirtual org.eclipse.jgit.util.FS$FileStoreAttributes.getFsTimestampResolution:()Ljava/time/Duration;
            invokevirtual java.time.Duration.toNanos:()J
         2: .line 523
            lstore 1 /* timestampResolution */
        start local 1 // long timestampResolution
         3: .line 525
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileStoreAttributeCache:Lorg/eclipse/jgit/util/FS$FileStoreAttributes;
            invokevirtual org.eclipse.jgit.util.FS$FileStoreAttributes.getMinimalRacyInterval:()Ljava/time/Duration;
         4: .line 526
            invokevirtual java.time.Duration.toNanos:()J
         5: .line 525
            lstore 3 /* minRacyInterval */
        start local 3 // long minRacyInterval
         6: .line 527
            lload 1 /* timestampResolution */
            lload 3 /* minRacyInterval */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 5 /* max */
        start local 5 // long max
         7: .line 529
            lload 5 /* max */
            ldc 100000000
            lcmp
            ifge 8
            lload 5 /* max */
            ldc 5
            lmul
            ldc 2
            ldiv
            goto 9
      StackMap locals: long long long
      StackMap stack:
         8: lload 5 /* max */
            ldc 5
            lmul
            ldc 4
            ldiv
      StackMap locals:
      StackMap stack: long
         9: lreturn
        end local 5 // long max
        end local 3 // long minRacyInterval
        end local 1 // long timestampResolution
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            3   10     1  timestampResolution  J
            6   10     3      minRacyInterval  J
            7   10     5                  max  J

  private boolean isModified(java.time.Instant);
    descriptor: (Ljava/time/Instant;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.time.Instant currLastModified
         0: .line 535
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            aload 1 /* currLastModified */
            invokevirtual java.time.Instant.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot
         1: iconst_1
      StackMap locals: org.eclipse.jgit.internal.storage.file.FileSnapshot java.time.Instant
      StackMap stack: org.eclipse.jgit.internal.storage.file.FileSnapshot int
         2: putfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModifiedChanged:Z
         3: .line 536
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModifiedChanged:Z
            ifeq 11
         4: .line 537
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 10
         5: .line 538
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
         6: .line 539
            ldc "file={}, lastModified changed from {} to {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 540
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            aastore
            dup
            iconst_1
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastModified:Ljava/time/Instant;
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         8: .line 541
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.dateFmt:Ljava/time/format/DateTimeFormatter;
            aload 1 /* currLastModified */
            invokevirtual java.time.format.DateTimeFormatter.format:(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
            aastore
         9: .line 538
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 543
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        11: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.cannotBeRacilyClean:Z
            ifeq 14
        12: .line 550
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, cannot be racily clean"
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 551
            iconst_0
            ireturn
        14: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.lastRead:Ljava/time/Instant;
            invokevirtual org.eclipse.jgit.internal.storage.file.FileSnapshot.isRacyClean:(Ljava/time/Instant;)Z
            ifne 17
        15: .line 557
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, is unmodified"
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 558
            iconst_0
            ireturn
        17: .line 564
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, is racily clean"
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 565
            iconst_1
            ireturn
        end local 1 // java.time.Instant currLastModified
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   19     1  currLastModified  Ljava/time/Instant;
    MethodParameters:
                  Name  Flags
      currLastModified  

  private boolean isFileKeyChanged(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // java.lang.Object currFileKey
         0: .line 569
            aload 1 /* currFileKey */
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.MISSING_FILEKEY:Ljava/lang/Object;
            if_acmpeq 3
         1: .line 570
            aload 1 /* currFileKey */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 569
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* changed */
        start local 2 // boolean changed
         5: .line 571
            iload 2 /* changed */
            ifeq 9
         6: .line 572
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, FileKey changed from {} to {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 573
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.fileKey:Ljava/lang/Object;
            aastore
            dup
            iconst_2
            aload 1 /* currFileKey */
            aastore
         8: .line 572
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 575
      StackMap locals: int
      StackMap stack:
            iload 2 /* changed */
            ireturn
        end local 2 // boolean changed
        end local 1 // java.lang.Object currFileKey
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0   10     1  currFileKey  Ljava/lang/Object;
            5   10     2      changed  Z
    MethodParameters:
             Name  Flags
      currFileKey  

  private boolean isSizeChanged(long);
    descriptor: (J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
        start local 1 // long currSize
         0: .line 579
            lload 1 /* currSize */
            ldc -1
            lcmp
            ifeq 1
            lload 1 /* currSize */
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            lcmp
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* changed */
        start local 3 // boolean changed
         3: .line 580
            iload 3 /* changed */
            ifeq 7
         4: .line 581
            getstatic org.eclipse.jgit.internal.storage.file.FileSnapshot.LOG:Lorg/slf4j/Logger;
            ldc "file={}, size changed from {} to {} bytes"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 582
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.file:Ljava/io/File;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.eclipse.jgit.internal.storage.file.FileSnapshot.size:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            lload 1 /* currSize */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
         6: .line 581
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 584
      StackMap locals: int
      StackMap stack:
            iload 3 /* changed */
            ireturn
        end local 3 // boolean changed
        end local 1 // long currSize
        end local 0 // org.eclipse.jgit.internal.storage.file.FileSnapshot this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/eclipse/jgit/internal/storage/file/FileSnapshot;
            0    8     1  currSize  J
            3    8     3   changed  Z
    MethodParameters:
          Name  Flags
      currSize  
}
SourceFile: "FileSnapshot.java"
NestMembers:
  org.eclipse.jgit.internal.storage.file.FileSnapshot$1
InnerClasses:
  org.eclipse.jgit.internal.storage.file.FileSnapshot$1
  public final FileStoreAttributes = org.eclipse.jgit.util.FS$FileStoreAttributes of org.eclipse.jgit.util.FS