class org.eclipse.aether.connector.basic.PartialFile$Factory
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.eclipse.aether.connector.basic.PartialFile$Factory
  super_class: java.lang.Object
{
  private final boolean resume;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final int requestTimeout;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.slf4j.Logger LOGGER;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 251
            ldc Lorg/eclipse/aether/connector/basic/PartialFile$Factory;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.eclipse.aether.connector.basic.PartialFile$Factory.LOGGER:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(boolean, long, int);
    descriptor: (ZJI)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.eclipse.aether.connector.basic.PartialFile$Factory this
        start local 1 // boolean resume
        start local 2 // long resumeThreshold
        start local 4 // int requestTimeout
         0: .line 253
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 255
            aload 0 /* this */
            iload 1 /* resume */
            putfield org.eclipse.aether.connector.basic.PartialFile$Factory.resume:Z
         2: .line 256
            aload 0 /* this */
            lload 2 /* resumeThreshold */
            putfield org.eclipse.aether.connector.basic.PartialFile$Factory.resumeThreshold:J
         3: .line 257
            aload 0 /* this */
            iload 4 /* requestTimeout */
            putfield org.eclipse.aether.connector.basic.PartialFile$Factory.requestTimeout:I
         4: .line 258
            return
        end local 4 // int requestTimeout
        end local 2 // long resumeThreshold
        end local 1 // boolean resume
        end local 0 // org.eclipse.aether.connector.basic.PartialFile$Factory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/eclipse/aether/connector/basic/PartialFile$Factory;
            0    5     1           resume  Z
            0    5     2  resumeThreshold  J
            0    5     4   requestTimeout  I
    MethodParameters:
                 Name  Flags
      resume           
      resumeThreshold  
      requestTimeout   

  public org.eclipse.aether.connector.basic.PartialFile newInstance(java.io.File, org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker);
    descriptor: (Ljava/io/File;Lorg/eclipse/aether/connector/basic/PartialFile$RemoteAccessChecker;)Lorg/eclipse/aether/connector/basic/PartialFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.eclipse.aether.connector.basic.PartialFile$Factory this
        start local 1 // java.io.File dstFile
        start local 2 // org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker checker
         0: .line 263
            aload 0 /* this */
            getfield org.eclipse.aether.connector.basic.PartialFile$Factory.resume:Z
            ifeq 16
         1: .line 265
            new java.io.File
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* dstFile */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".part"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* partFile */
        start local 3 // java.io.File partFile
         2: .line 267
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 4 /* reqTimestamp */
        start local 4 // long reqTimestamp
         3: .line 268
            new org.eclipse.aether.connector.basic.PartialFile$LockFile
            dup
            aload 3 /* partFile */
            aload 0 /* this */
            getfield org.eclipse.aether.connector.basic.PartialFile$Factory.requestTimeout:I
            aload 2 /* checker */
            invokespecial org.eclipse.aether.connector.basic.PartialFile$LockFile.<init>:(Ljava/io/File;ILorg/eclipse/aether/connector/basic/PartialFile$RemoteAccessChecker;)V
            astore 6 /* lockFile */
        start local 6 // org.eclipse.aether.connector.basic.PartialFile$LockFile lockFile
         4: .line 269
            aload 6 /* lockFile */
            invokevirtual org.eclipse.aether.connector.basic.PartialFile$LockFile.isConcurrent:()Z
            ifeq 7
            aload 1 /* dstFile */
            invokevirtual java.io.File.lastModified:()J
            lload 4 /* reqTimestamp */
            ldc 100
            lsub
            lcmp
            iflt 7
         5: .line 271
            aload 6 /* lockFile */
            invokevirtual org.eclipse.aether.connector.basic.PartialFile$LockFile.close:()V
         6: .line 272
            aconst_null
            areturn
         7: .line 276
      StackMap locals: java.io.File long org.eclipse.aether.connector.basic.PartialFile$LockFile
      StackMap stack:
            aload 3 /* partFile */
            invokevirtual java.io.File.createNewFile:()Z
            ifne 11
            aload 3 /* partFile */
            invokevirtual java.io.File.isFile:()Z
            ifne 11
         8: .line 278
            new java.io.IOException
            dup
            aload 3 /* partFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 9
            ldc "Path exists but is not a file"
            goto 10
      StackMap locals: org.eclipse.aether.connector.basic.PartialFile$Factory java.io.File org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker java.io.File long org.eclipse.aether.connector.basic.PartialFile$LockFile
      StackMap stack: new 8 new 8
         9: ldc "Unknown error"
      StackMap locals: org.eclipse.aether.connector.basic.PartialFile$Factory java.io.File org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker java.io.File long org.eclipse.aether.connector.basic.PartialFile$LockFile
      StackMap stack: new 8 new 8 java.lang.String
        10: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 280
      StackMap locals:
      StackMap stack:
            new org.eclipse.aether.connector.basic.PartialFile
            dup
            aload 3 /* partFile */
            aload 6 /* lockFile */
            aload 0 /* this */
            getfield org.eclipse.aether.connector.basic.PartialFile$Factory.resumeThreshold:J
            invokespecial org.eclipse.aether.connector.basic.PartialFile.<init>:(Ljava/io/File;Lorg/eclipse/aether/connector/basic/PartialFile$LockFile;J)V
        12: areturn
        13: .line 282
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        14: .line 284
            aload 6 /* lockFile */
            invokevirtual org.eclipse.aether.connector.basic.PartialFile$LockFile.close:()V
        15: .line 285
            getstatic org.eclipse.aether.connector.basic.PartialFile$Factory.LOGGER:Lorg/slf4j/Logger;
            ldc "Cannot create resumable file {}"
            aload 3 /* partFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aload 7 /* e */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // java.io.IOException e
        end local 6 // org.eclipse.aether.connector.basic.PartialFile$LockFile lockFile
        end local 4 // long reqTimestamp
        end local 3 // java.io.File partFile
        16: .line 291
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* dstFile */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            ldc "-"
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ".tmp"
        17: .line 292
            aload 1 /* dstFile */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
        18: .line 291
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
        19: .line 290
            astore 3 /* tempFile */
        start local 3 // java.io.File tempFile
        20: .line 293
            new org.eclipse.aether.connector.basic.PartialFile
            dup
            aload 3 /* tempFile */
            invokespecial org.eclipse.aether.connector.basic.PartialFile.<init>:(Ljava/io/File;)V
            areturn
        end local 3 // java.io.File tempFile
        end local 2 // org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker checker
        end local 1 // java.io.File dstFile
        end local 0 // org.eclipse.aether.connector.basic.PartialFile$Factory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/eclipse/aether/connector/basic/PartialFile$Factory;
            0   21     1       dstFile  Ljava/io/File;
            0   21     2       checker  Lorg/eclipse/aether/connector/basic/PartialFile$RemoteAccessChecker;
            2   16     3      partFile  Ljava/io/File;
            3   16     4  reqTimestamp  J
            4   16     6      lockFile  Lorg/eclipse/aether/connector/basic/PartialFile$LockFile;
           14   16     7             e  Ljava/io/IOException;
           20   21     3      tempFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           7    12      13  Class java.io.IOException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      dstFile  
      checker  
}
SourceFile: "PartialFile.java"
NestHost: org.eclipse.aether.connector.basic.PartialFile
InnerClasses:
  Factory = org.eclipse.aether.connector.basic.PartialFile$Factory of org.eclipse.aether.connector.basic.PartialFile
  LockFile = org.eclipse.aether.connector.basic.PartialFile$LockFile of org.eclipse.aether.connector.basic.PartialFile
  abstract RemoteAccessChecker = org.eclipse.aether.connector.basic.PartialFile$RemoteAccessChecker of org.eclipse.aether.connector.basic.PartialFile