final class jdk.incubator.http.ConnectionPool
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.incubator.http.ConnectionPool
  super_class: java.lang.Object
{
  static final long KEEP_ALIVE;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  final java.util.HashMap<jdk.incubator.http.ConnectionPool$CacheKey, java.util.LinkedList<jdk.incubator.http.HttpConnection>> plainPool;
    descriptor: Ljava/util/HashMap;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;

  final java.util.HashMap<jdk.incubator.http.ConnectionPool$CacheKey, java.util.LinkedList<jdk.incubator.http.HttpConnection>> sslPool;
    descriptor: Ljava/util/HashMap;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;

  jdk.incubator.http.ConnectionPool$CacheCleaner cleaner;
    descriptor: Ljdk/incubator/http/ConnectionPool$CacheCleaner;
    flags: (0x0000) 

  final java.util.LinkedList<jdk.incubator.http.ConnectionPool$ExpiryEntry> expiryList;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/LinkedList<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 38
            ldc Ljdk/incubator/http/ConnectionPool;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.incubator.http.ConnectionPool.$assertionsDisabled:Z
         3: .line 41
            ldc "jdk.httpclient.keepalive.timeout"
            sipush 1200
         4: .line 40
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            i2l
            putstatic jdk.incubator.http.ConnectionPool.KEEP_ALIVE:J
         5: .line 41
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.http.ConnectionPool this
         0: .line 104
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 105
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.incubator.http.ConnectionPool.plainPool:Ljava/util/HashMap;
         2: .line 106
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.incubator.http.ConnectionPool.sslPool:Ljava/util/HashMap;
         3: .line 107
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
         4: .line 108
            return
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/incubator/http/ConnectionPool;

  void start();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // jdk.incubator.http.ConnectionPool this
         0: .line 111
            return
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/ConnectionPool;

  static jdk.incubator.http.ConnectionPool$CacheKey cacheKey(java.net.InetSocketAddress, java.net.InetSocketAddress);
    descriptor: (Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)Ljdk/incubator/http/ConnectionPool$CacheKey;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.net.InetSocketAddress destination
        start local 1 // java.net.InetSocketAddress proxy
         0: .line 116
            new jdk.incubator.http.ConnectionPool$CacheKey
            dup
            aload 0 /* destination */
            aload 1 /* proxy */
            invokespecial jdk.incubator.http.ConnectionPool$CacheKey.<init>:(Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)V
            areturn
        end local 1 // java.net.InetSocketAddress proxy
        end local 0 // java.net.InetSocketAddress destination
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  destination  Ljava/net/InetSocketAddress;
            0    1     1        proxy  Ljava/net/InetSocketAddress;
    MethodParameters:
             Name  Flags
      destination  
      proxy        

  synchronized jdk.incubator.http.HttpConnection getConnection(boolean, java.net.InetSocketAddress, java.net.InetSocketAddress);
    descriptor: (ZLjava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)Ljdk/incubator/http/HttpConnection;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // boolean secure
        start local 2 // java.net.InetSocketAddress addr
        start local 3 // java.net.InetSocketAddress proxy
         0: .line 122
            new jdk.incubator.http.ConnectionPool$CacheKey
            dup
            aload 2 /* addr */
            aload 3 /* proxy */
            invokespecial jdk.incubator.http.ConnectionPool$CacheKey.<init>:(Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;)V
            astore 4 /* key */
        start local 4 // jdk.incubator.http.ConnectionPool$CacheKey key
         1: .line 123
            iload 1 /* secure */
            ifeq 2
            aload 0 /* this */
            aload 4 /* key */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.sslPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.findConnection:(Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/HashMap;)Ljdk/incubator/http/HttpConnection;
            goto 3
         2: .line 124
      StackMap locals: jdk.incubator.http.ConnectionPool$CacheKey
      StackMap stack:
            aload 0 /* this */
            aload 4 /* key */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.plainPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.findConnection:(Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/HashMap;)Ljdk/incubator/http/HttpConnection;
         3: .line 123
      StackMap locals:
      StackMap stack: jdk.incubator.http.HttpConnection
            astore 5 /* c */
        start local 5 // jdk.incubator.http.HttpConnection c
         4: .line 126
            aload 5 /* c */
            areturn
        end local 5 // jdk.incubator.http.HttpConnection c
        end local 4 // jdk.incubator.http.ConnectionPool$CacheKey key
        end local 3 // java.net.InetSocketAddress proxy
        end local 2 // java.net.InetSocketAddress addr
        end local 1 // boolean secure
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/incubator/http/ConnectionPool;
            0    5     1  secure  Z
            0    5     2    addr  Ljava/net/InetSocketAddress;
            0    5     3   proxy  Ljava/net/InetSocketAddress;
            1    5     4     key  Ljdk/incubator/http/ConnectionPool$CacheKey;
            4    5     5       c  Ljdk/incubator/http/HttpConnection;
    MethodParameters:
        Name  Flags
      secure  
      addr    
      proxy   

  synchronized void returnToPool(jdk.incubator.http.HttpConnection);
    descriptor: (Ljdk/incubator/http/HttpConnection;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.HttpConnection conn
         0: .line 133
            aload 1 /* conn */
            instanceof jdk.incubator.http.PlainHttpConnection
            ifeq 3
         1: .line 134
            aload 0 /* this */
            aload 1 /* conn */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.plainPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.putConnection:(Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
         2: .line 135
            goto 4
         3: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* conn */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.sslPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.putConnection:(Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
         4: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual jdk.incubator.http.ConnectionPool.addToExpiryList:(Ljdk/incubator/http/HttpConnection;)V
         5: .line 140
            return
        end local 1 // jdk.incubator.http.HttpConnection conn
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/incubator/http/ConnectionPool;
            0    6     1  conn  Ljdk/incubator/http/HttpConnection;
    MethodParameters:
      Name  Flags
      conn  

  private jdk.incubator.http.HttpConnection findConnection(jdk.incubator.http.ConnectionPool$CacheKey, java.util.HashMap<jdk.incubator.http.ConnectionPool$CacheKey, java.util.LinkedList<jdk.incubator.http.HttpConnection>>);
    descriptor: (Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/HashMap;)Ljdk/incubator/http/HttpConnection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.ConnectionPool$CacheKey key
        start local 2 // java.util.HashMap pool
         0: .line 145
            aload 2 /* pool */
            aload 1 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.LinkedList
            astore 3 /* l */
        start local 3 // java.util.LinkedList l
         1: .line 146
            aload 3 /* l */
            ifnull 2
            aload 3 /* l */
            invokevirtual java.util.LinkedList.size:()I
            ifne 3
         2: .line 147
      StackMap locals: java.util.LinkedList
      StackMap stack:
            aconst_null
            areturn
         3: .line 149
      StackMap locals:
      StackMap stack:
            aload 3 /* l */
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            checkcast jdk.incubator.http.HttpConnection
            astore 4 /* c */
        start local 4 // jdk.incubator.http.HttpConnection c
         4: .line 150
            aload 0 /* this */
            aload 4 /* c */
            invokevirtual jdk.incubator.http.ConnectionPool.removeFromExpiryList:(Ljdk/incubator/http/HttpConnection;)V
         5: .line 151
            aload 4 /* c */
            areturn
        end local 4 // jdk.incubator.http.HttpConnection c
        end local 3 // java.util.LinkedList l
        end local 2 // java.util.HashMap pool
        end local 1 // jdk.incubator.http.ConnectionPool$CacheKey key
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/incubator/http/ConnectionPool;
            0    6     1   key  Ljdk/incubator/http/ConnectionPool$CacheKey;
            0    6     2  pool  Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;
            1    6     3     l  Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;
            4    6     4     c  Ljdk/incubator/http/HttpConnection;
    Signature: (Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;)Ljdk/incubator/http/HttpConnection;
    MethodParameters:
      Name  Flags
      key   
      pool  

  private void removeFromPool(jdk.incubator.http.HttpConnection, java.util.HashMap<jdk.incubator.http.ConnectionPool$CacheKey, java.util.LinkedList<jdk.incubator.http.HttpConnection>>);
    descriptor: (Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.HttpConnection c
        start local 2 // java.util.HashMap pool
         0: .line 160
            aload 2 /* pool */
            aload 1 /* c */
            invokevirtual jdk.incubator.http.HttpConnection.cacheKey:()Ljdk/incubator/http/ConnectionPool$CacheKey;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.LinkedList
            astore 3 /* l */
        start local 3 // java.util.LinkedList l
         1: .line 161
            getstatic jdk.incubator.http.ConnectionPool.$assertionsDisabled:Z
            ifne 2
            aload 3 /* l */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 162
      StackMap locals: java.util.LinkedList
      StackMap stack:
            aload 3 /* l */
            aload 1 /* c */
            invokevirtual java.util.LinkedList.remove:(Ljava/lang/Object;)Z
            istore 4 /* wasPresent */
        start local 4 // boolean wasPresent
         3: .line 163
            getstatic jdk.incubator.http.ConnectionPool.$assertionsDisabled:Z
            ifne 4
            iload 4 /* wasPresent */
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 164
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // boolean wasPresent
        end local 3 // java.util.LinkedList l
        end local 2 // java.util.HashMap pool
        end local 1 // jdk.incubator.http.HttpConnection c
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljdk/incubator/http/ConnectionPool;
            0    5     1           c  Ljdk/incubator/http/HttpConnection;
            0    5     2        pool  Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;
            1    5     3           l  Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;
            3    5     4  wasPresent  Z
    Signature: (Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;)V
    MethodParameters:
      Name  Flags
      c     
      pool  

  private void putConnection(jdk.incubator.http.HttpConnection, java.util.HashMap<jdk.incubator.http.ConnectionPool$CacheKey, java.util.LinkedList<jdk.incubator.http.HttpConnection>>);
    descriptor: (Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.HttpConnection c
        start local 2 // java.util.HashMap pool
         0: .line 169
            aload 1 /* c */
            invokevirtual jdk.incubator.http.HttpConnection.cacheKey:()Ljdk/incubator/http/ConnectionPool$CacheKey;
            astore 3 /* key */
        start local 3 // jdk.incubator.http.ConnectionPool$CacheKey key
         1: .line 170
            aload 2 /* pool */
            aload 3 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.LinkedList
            astore 4 /* l */
        start local 4 // java.util.LinkedList l
         2: .line 171
            aload 4 /* l */
            ifnonnull 5
         3: .line 172
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* l */
         4: .line 173
            aload 2 /* pool */
            aload 3 /* key */
            aload 4 /* l */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 175
      StackMap locals: jdk.incubator.http.ConnectionPool$CacheKey java.util.LinkedList
      StackMap stack:
            aload 4 /* l */
            aload 1 /* c */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 176
            return
        end local 4 // java.util.LinkedList l
        end local 3 // jdk.incubator.http.ConnectionPool$CacheKey key
        end local 2 // java.util.HashMap pool
        end local 1 // jdk.incubator.http.HttpConnection c
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/incubator/http/ConnectionPool;
            0    7     1     c  Ljdk/incubator/http/HttpConnection;
            0    7     2  pool  Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;
            1    7     3   key  Ljdk/incubator/http/ConnectionPool$CacheKey;
            2    7     4     l  Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;
    Signature: (Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap<Ljdk/incubator/http/ConnectionPool$CacheKey;Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;>;)V
    MethodParameters:
      Name  Flags
      c     
      pool  

  synchronized void removeFromExpiryList(jdk.incubator.http.HttpConnection);
    descriptor: (Ljdk/incubator/http/HttpConnection;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.HttpConnection c
         0: .line 209
            aload 1 /* c */
            ifnonnull 2
         1: .line 210
            return
         2: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
            astore 2 /* li */
        start local 2 // java.util.ListIterator li
         3: .line 213
            goto 8
         4: .line 214
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 2 /* li */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
            astore 3 /* e */
        start local 3 // jdk.incubator.http.ConnectionPool$ExpiryEntry e
         5: .line 215
            aload 3 /* e */
            getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.connection:Ljdk/incubator/http/HttpConnection;
            aload 1 /* c */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 216
            aload 2 /* li */
            invokeinterface java.util.ListIterator.remove:()V
         7: .line 217
            return
        end local 3 // jdk.incubator.http.ConnectionPool$ExpiryEntry e
         8: .line 213
      StackMap locals:
      StackMap stack:
            aload 2 /* li */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 4
         9: .line 220
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 12
        10: .line 221
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.cleaner:Ljdk/incubator/http/ConnectionPool$CacheCleaner;
            invokevirtual jdk.incubator.http.ConnectionPool$CacheCleaner.stopCleaner:()V
        11: .line 222
            aload 0 /* this */
            aconst_null
            putfield jdk.incubator.http.ConnectionPool.cleaner:Ljdk/incubator/http/ConnectionPool$CacheCleaner;
        12: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ListIterator li
        end local 1 // jdk.incubator.http.HttpConnection c
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljdk/incubator/http/ConnectionPool;
            0   13     1     c  Ljdk/incubator/http/HttpConnection;
            3   13     2    li  Ljava/util/ListIterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
            5    8     3     e  Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
    MethodParameters:
      Name  Flags
      c     

  private void cleanCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // jdk.incubator.http.ConnectionPool this
         0: .line 227
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            lstore 1 /* now */
        start local 1 // long now
         1: .line 228
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 3 /* closelist */
        start local 3 // java.util.LinkedList closelist
         2: .line 230
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 231
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
            astore 5 /* li */
        start local 5 // java.util.ListIterator li
         4: .line 232
            goto 14
         5: .line 233
      StackMap locals: jdk.incubator.http.ConnectionPool long java.util.LinkedList jdk.incubator.http.ConnectionPool java.util.ListIterator
      StackMap stack:
            aload 5 /* li */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
            astore 6 /* entry */
        start local 6 // jdk.incubator.http.ConnectionPool$ExpiryEntry entry
         6: .line 234
            aload 6 /* entry */
            getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.expiry:J
            lload 1 /* now */
            lcmp
            ifgt 14
         7: .line 235
            aload 5 /* li */
            invokeinterface java.util.ListIterator.remove:()V
         8: .line 236
            aload 6 /* entry */
            getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.connection:Ljdk/incubator/http/HttpConnection;
            astore 7 /* c */
        start local 7 // jdk.incubator.http.HttpConnection c
         9: .line 237
            aload 3 /* closelist */
            aload 7 /* c */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 238
            aload 7 /* c */
            instanceof jdk.incubator.http.PlainHttpConnection
            ifeq 13
        11: .line 239
            aload 0 /* this */
            aload 7 /* c */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.plainPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.removeFromPool:(Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
        12: .line 240
            goto 14
        13: .line 241
      StackMap locals: jdk.incubator.http.ConnectionPool$ExpiryEntry jdk.incubator.http.HttpConnection
      StackMap stack:
            aload 0 /* this */
            aload 7 /* c */
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.sslPool:Ljava/util/HashMap;
            invokevirtual jdk.incubator.http.ConnectionPool.removeFromPool:(Ljdk/incubator/http/HttpConnection;Ljava/util/HashMap;)V
        end local 7 // jdk.incubator.http.HttpConnection c
        end local 6 // jdk.incubator.http.ConnectionPool$ExpiryEntry entry
        14: .line 232
      StackMap locals:
      StackMap stack:
            aload 5 /* li */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 5
        end local 5 // java.util.ListIterator li
        15: .line 230
            aload 4
            monitorexit
        16: goto 19
      StackMap locals: jdk.incubator.http.ConnectionPool long java.util.LinkedList jdk.incubator.http.ConnectionPool
      StackMap stack: java.lang.Throwable
        17: aload 4
            monitorexit
        18: athrow
        19: .line 246
      StackMap locals:
      StackMap stack:
            aload 3 /* closelist */
            invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 22
      StackMap locals: jdk.incubator.http.ConnectionPool long java.util.LinkedList top java.util.Iterator
      StackMap stack:
        20: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.HttpConnection
            astore 4 /* c */
        start local 4 // jdk.incubator.http.HttpConnection c
        21: .line 248
            aload 4 /* c */
            invokevirtual jdk.incubator.http.HttpConnection.close:()V
        end local 4 // jdk.incubator.http.HttpConnection c
        22: .line 246
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 250
            return
        end local 3 // java.util.LinkedList closelist
        end local 1 // long now
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Ljdk/incubator/http/ConnectionPool;
            1   24     1        now  J
            2   24     3  closelist  Ljava/util/LinkedList<Ljdk/incubator/http/HttpConnection;>;
            4   15     5         li  Ljava/util/ListIterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
            6   14     6      entry  Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
            9   14     7          c  Ljdk/incubator/http/HttpConnection;
           21   22     4          c  Ljdk/incubator/http/HttpConnection;
      Exception table:
        from    to  target  type
           3    16      17  any
          17    18      17  any

  private synchronized void addToExpiryList(jdk.incubator.http.HttpConnection);
    descriptor: (Ljdk/incubator/http/HttpConnection;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // jdk.incubator.http.ConnectionPool this
        start local 1 // jdk.incubator.http.HttpConnection conn
         0: .line 253
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            lstore 2 /* now */
        start local 2 // long now
         1: .line 254
            lload 2 /* now */
            getstatic jdk.incubator.http.ConnectionPool.KEEP_ALIVE:J
            ladd
            lstore 4 /* then */
        start local 4 // long then
         2: .line 256
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.isEmpty:()Z
            ifeq 5
         3: .line 257
            aload 0 /* this */
            new jdk.incubator.http.ConnectionPool$CacheCleaner
            dup
            aload 0 /* this */
            invokespecial jdk.incubator.http.ConnectionPool$CacheCleaner.<init>:(Ljdk/incubator/http/ConnectionPool;)V
            putfield jdk.incubator.http.ConnectionPool.cleaner:Ljdk/incubator/http/ConnectionPool$CacheCleaner;
         4: .line 258
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.cleaner:Ljdk/incubator/http/ConnectionPool$CacheCleaner;
            invokevirtual jdk.incubator.http.ConnectionPool$CacheCleaner.start:()V
         5: .line 261
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
            astore 6 /* li */
        start local 6 // java.util.ListIterator li
         6: .line 262
            goto 12
         7: .line 263
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 6 /* li */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast jdk.incubator.http.ConnectionPool$ExpiryEntry
            astore 7 /* entry */
        start local 7 // jdk.incubator.http.ConnectionPool$ExpiryEntry entry
         8: .line 265
            lload 4 /* then */
            aload 7 /* entry */
            getfield jdk.incubator.http.ConnectionPool$ExpiryEntry.expiry:J
            lcmp
            ifle 12
         9: .line 266
            aload 6 /* li */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        10: .line 268
            aload 6 /* li */
            new jdk.incubator.http.ConnectionPool$ExpiryEntry
            dup
            aload 1 /* conn */
            lload 4 /* then */
            invokespecial jdk.incubator.http.ConnectionPool$ExpiryEntry.<init>:(Ljdk/incubator/http/HttpConnection;J)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        11: .line 269
            return
        end local 7 // jdk.incubator.http.ConnectionPool$ExpiryEntry entry
        12: .line 262
      StackMap locals:
      StackMap stack:
            aload 6 /* li */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 7
        13: .line 273
            aload 0 /* this */
            getfield jdk.incubator.http.ConnectionPool.expiryList:Ljava/util/LinkedList;
            new jdk.incubator.http.ConnectionPool$ExpiryEntry
            dup
            aload 1 /* conn */
            lload 4 /* then */
            invokespecial jdk.incubator.http.ConnectionPool$ExpiryEntry.<init>:(Ljdk/incubator/http/HttpConnection;J)V
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        14: .line 274
            return
        end local 6 // java.util.ListIterator li
        end local 4 // long then
        end local 2 // long now
        end local 1 // jdk.incubator.http.HttpConnection conn
        end local 0 // jdk.incubator.http.ConnectionPool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Ljdk/incubator/http/ConnectionPool;
            0   15     1   conn  Ljdk/incubator/http/HttpConnection;
            1   15     2    now  J
            2   15     4   then  J
            6   15     6     li  Ljava/util/ListIterator<Ljdk/incubator/http/ConnectionPool$ExpiryEntry;>;
            8   12     7  entry  Ljdk/incubator/http/ConnectionPool$ExpiryEntry;
    MethodParameters:
      Name  Flags
      conn  
}
SourceFile: "ConnectionPool.java"
NestMembers:
  jdk.incubator.http.ConnectionPool$CacheCleaner  jdk.incubator.http.ConnectionPool$CacheKey  jdk.incubator.http.ConnectionPool$ExpiryEntry
InnerClasses:
  final CacheCleaner = jdk.incubator.http.ConnectionPool$CacheCleaner of jdk.incubator.http.ConnectionPool
  CacheKey = jdk.incubator.http.ConnectionPool$CacheKey of jdk.incubator.http.ConnectionPool
  ExpiryEntry = jdk.incubator.http.ConnectionPool$ExpiryEntry of jdk.incubator.http.ConnectionPool