public class sun.net.www.http.KeepAliveStreamCleaner extends java.util.concurrent.LinkedBlockingQueue<sun.net.www.http.KeepAliveCleanerEntry> implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.net.www.http.KeepAliveStreamCleaner
  super_class: java.util.concurrent.LinkedBlockingQueue
{
  protected static int MAX_DATA_REMAINING;
    descriptor: I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static int MAX_CAPACITY;
    descriptor: I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static final int TIMEOUT;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 5000

  private static final int MAX_RETRIES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 49
            sipush 512
            putstatic sun.net.www.http.KeepAliveStreamCleaner.MAX_DATA_REMAINING:I
         1: .line 52
            bipush 10
            putstatic sun.net.www.http.KeepAliveStreamCleaner.MAX_CAPACITY:I
         2: .line 63
            new sun.net.www.http.KeepAliveStreamCleaner$1
            dup
            invokespecial sun.net.www.http.KeepAliveStreamCleaner$1.<init>:()V
         3: .line 62
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Integer
         4: .line 66
            invokevirtual java.lang.Integer.intValue:()I
            sipush 1024
         5: .line 62
            imul
            istore 0 /* maxData */
        start local 0 // int maxData
         6: .line 67
            iload 0 /* maxData */
            putstatic sun.net.www.http.KeepAliveStreamCleaner.MAX_DATA_REMAINING:I
         7: .line 71
            new sun.net.www.http.KeepAliveStreamCleaner$2
            dup
            invokespecial sun.net.www.http.KeepAliveStreamCleaner$2.<init>:()V
         8: .line 70
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Integer
         9: .line 74
            invokevirtual java.lang.Integer.intValue:()I
        10: .line 70
            istore 1 /* maxCapacity */
        start local 1 // int maxCapacity
        11: .line 75
            iload 1 /* maxCapacity */
            putstatic sun.net.www.http.KeepAliveStreamCleaner.MAX_CAPACITY:I
        end local 1 // int maxCapacity
        end local 0 // int maxData
        12: .line 77
            return
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            6   12     0      maxData  I
           11   12     1  maxCapacity  I

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.net.www.http.KeepAliveStreamCleaner this
         0: .line 82
            aload 0 /* this */
            getstatic sun.net.www.http.KeepAliveStreamCleaner.MAX_CAPACITY:I
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
         1: .line 83
            return
        end local 0 // sun.net.www.http.KeepAliveStreamCleaner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/net/www/http/KeepAliveStreamCleaner;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.net.www.http.KeepAliveStreamCleaner this
        start local 1 // int capacity
         0: .line 87
            aload 0 /* this */
            iload 1 /* capacity */
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
         1: .line 88
            return
        end local 1 // int capacity
        end local 0 // sun.net.www.http.KeepAliveStreamCleaner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/net/www/http/KeepAliveStreamCleaner;
            0    2     1  capacity  I
    MethodParameters:
          Name  Flags
      capacity  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=1
        start local 0 // sun.net.www.http.KeepAliveStreamCleaner this
         0: .line 92
            aconst_null
            astore 1 /* kace */
        start local 1 // sun.net.www.http.KeepAliveCleanerEntry kace
         1: .line 96
      StackMap locals: sun.net.www.http.KeepAliveCleanerEntry
      StackMap stack:
            aload 0 /* this */
            ldc 5000
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual sun.net.www.http.KeepAliveStreamCleaner.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            checkcast sun.net.www.http.KeepAliveCleanerEntry
            astore 1 /* kace */
         2: .line 97
            aload 1 /* kace */
            ifnonnull 4
         3: .line 98
            goto 41
         4: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* kace */
            invokevirtual sun.net.www.http.KeepAliveCleanerEntry.getKeepAliveStream:()Lsun/net/www/http/KeepAliveStream;
            astore 2 /* kas */
        start local 2 // sun.net.www.http.KeepAliveStream kas
         5: .line 102
            aload 2 /* kas */
            ifnull 40
         6: .line 103
            aload 2 /* kas */
            dup
            astore 3
            monitorenter
         7: .line 104
            aload 1 /* kace */
            invokevirtual sun.net.www.http.KeepAliveCleanerEntry.getHttpClient:()Lsun/net/www/http/HttpClient;
            astore 4 /* hc */
        start local 4 // sun.net.www.http.HttpClient hc
         8: .line 106
            aload 4 /* hc */
            ifnull 34
            aload 4 /* hc */
            invokevirtual sun.net.www.http.HttpClient.isInKeepAliveCache:()Z
            ifne 34
         9: .line 107
            aload 4 /* hc */
            invokevirtual sun.net.www.http.HttpClient.getReadTimeout:()I
            istore 5 /* oldTimeout */
        start local 5 // int oldTimeout
        10: .line 108
            aload 4 /* hc */
            sipush 5000
            invokevirtual sun.net.www.http.HttpClient.setReadTimeout:(I)V
        11: .line 109
            aload 2 /* kas */
            invokevirtual sun.net.www.http.KeepAliveStream.remainingToRead:()J
            lstore 6 /* remainingToRead */
        start local 6 // long remainingToRead
        12: .line 110
            lload 6 /* remainingToRead */
            lconst_0
            lcmp
            ifle 22
        13: .line 111
            lconst_0
            lstore 8 /* n */
        start local 8 // long n
        14: .line 112
            iconst_0
            istore 10 /* retries */
        start local 10 // int retries
        15: .line 113
            goto 20
        16: .line 114
      StackMap locals: sun.net.www.http.KeepAliveStreamCleaner sun.net.www.http.KeepAliveCleanerEntry sun.net.www.http.KeepAliveStream sun.net.www.http.KeepAliveStream sun.net.www.http.HttpClient int long long int
      StackMap stack:
            lload 6 /* remainingToRead */
            lload 8 /* n */
            lsub
            lstore 6 /* remainingToRead */
        17: .line 115
            aload 2 /* kas */
            lload 6 /* remainingToRead */
            invokevirtual sun.net.www.http.KeepAliveStream.skip:(J)J
            lstore 8 /* n */
        18: .line 116
            lload 8 /* n */
            lconst_0
            lcmp
            ifne 20
        19: .line 117
            iinc 10 /* retries */ 1
        20: .line 113
      StackMap locals:
      StackMap stack:
            lload 8 /* n */
            lload 6 /* remainingToRead */
            lcmp
            ifge 21
            iload 10 /* retries */
            iconst_5
            if_icmplt 16
        21: .line 119
      StackMap locals:
      StackMap stack:
            lload 6 /* remainingToRead */
            lload 8 /* n */
            lsub
            lstore 6 /* remainingToRead */
        end local 10 // int retries
        end local 8 // long n
        22: .line 121
      StackMap locals:
      StackMap stack:
            lload 6 /* remainingToRead */
            lconst_0
            lcmp
            ifne 26
        23: .line 122
            aload 4 /* hc */
            iload 5 /* oldTimeout */
            invokevirtual sun.net.www.http.HttpClient.setReadTimeout:(I)V
        24: .line 123
            aload 4 /* hc */
            invokevirtual sun.net.www.http.HttpClient.finished:()V
        25: .line 124
            goto 34
        26: .line 125
      StackMap locals:
      StackMap stack:
            aload 4 /* hc */
            invokevirtual sun.net.www.http.HttpClient.closeServer:()V
        end local 6 // long remainingToRead
        end local 5 // int oldTimeout
        27: .line 127
            goto 34
      StackMap locals: sun.net.www.http.KeepAliveStreamCleaner sun.net.www.http.KeepAliveCleanerEntry sun.net.www.http.KeepAliveStream sun.net.www.http.KeepAliveStream sun.net.www.http.HttpClient
      StackMap stack: java.io.IOException
        28: pop
        29: .line 128
            aload 4 /* hc */
            invokevirtual sun.net.www.http.HttpClient.closeServer:()V
        30: .line 130
            aload 2 /* kas */
            invokevirtual sun.net.www.http.KeepAliveStream.setClosed:()V
            goto 35
        31: .line 129
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        32: .line 130
            aload 2 /* kas */
            invokevirtual sun.net.www.http.KeepAliveStream.setClosed:()V
        33: .line 131
            aload 11
            athrow
        34: .line 130
      StackMap locals:
      StackMap stack:
            aload 2 /* kas */
            invokevirtual sun.net.www.http.KeepAliveStream.setClosed:()V
        end local 4 // sun.net.www.http.HttpClient hc
        35: .line 103
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        36: goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: aload 3
            monitorexit
        38: athrow
        end local 2 // sun.net.www.http.KeepAliveStream kas
        39: .line 134
      StackMap locals: sun.net.www.http.KeepAliveStreamCleaner sun.net.www.http.KeepAliveCleanerEntry
      StackMap stack: java.lang.InterruptedException
            pop
        40: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* kace */
            ifnonnull 1
        41: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.net.www.http.KeepAliveCleanerEntry kace
        end local 0 // sun.net.www.http.KeepAliveStreamCleaner this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lsun/net/www/http/KeepAliveStreamCleaner;
            1   42     1             kace  Lsun/net/www/http/KeepAliveCleanerEntry;
            5   39     2              kas  Lsun/net/www/http/KeepAliveStream;
            8   35     4               hc  Lsun/net/www/http/HttpClient;
           10   27     5       oldTimeout  I
           12   27     6  remainingToRead  J
           14   22     8                n  J
           15   22    10          retries  I
      Exception table:
        from    to  target  type
           8    27      28  Class java.io.IOException
           8    30      31  any
           7    36      37  any
          37    38      37  any
           1     3      39  Class java.lang.InterruptedException
           4    39      39  Class java.lang.InterruptedException
}
Signature: Ljava/util/concurrent/LinkedBlockingQueue<Lsun/net/www/http/KeepAliveCleanerEntry;>;Ljava/lang/Runnable;
SourceFile: "KeepAliveStreamCleaner.java"
NestMembers:
  sun.net.www.http.KeepAliveStreamCleaner$1  sun.net.www.http.KeepAliveStreamCleaner$2
InnerClasses:
  sun.net.www.http.KeepAliveStreamCleaner$1
  sun.net.www.http.KeepAliveStreamCleaner$2