class jdk.incubator.http.Http2ClientImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.incubator.http.Http2ClientImpl
  super_class: java.lang.Object
{
  private final jdk.incubator.http.HttpClientImpl client;
    descriptor: Ljdk/incubator/http/HttpClientImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, jdk.incubator.http.Http2Connection> connections;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljdk/incubator/http/Http2Connection;>;

  private final java.util.Set<java.lang.String> opening;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

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

  void <init>(jdk.incubator.http.HttpClientImpl);
    descriptor: (Ljdk/incubator/http/HttpClientImpl;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.incubator.http.Http2ClientImpl this
        start local 1 // jdk.incubator.http.HttpClientImpl client
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
         2: .line 61
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
            putfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
         3: .line 55
            aload 0 /* this */
            aload 1 /* client */
            putfield jdk.incubator.http.Http2ClientImpl.client:Ljdk/incubator/http/HttpClientImpl;
         4: .line 56
            return
        end local 1 // jdk.incubator.http.HttpClientImpl client
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/incubator/http/Http2ClientImpl;
            0    5     1  client  Ljdk/incubator/http/HttpClientImpl;
    MethodParameters:
        Name  Flags
      client  

  boolean haveConnectionFor(java.net.URI, java.net.InetSocketAddress);
    descriptor: (Ljava/net/URI;Ljava/net/InetSocketAddress;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.incubator.http.Http2ClientImpl this
        start local 1 // java.net.URI uri
        start local 2 // java.net.InetSocketAddress proxy
         0: .line 64
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 1 /* uri */
            aload 2 /* proxy */
            invokestatic jdk.incubator.http.Http2Connection.keyFor:(Ljava/net/URI;Ljava/net/InetSocketAddress;)Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.net.InetSocketAddress proxy
        end local 1 // java.net.URI uri
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/incubator/http/Http2ClientImpl;
            0    1     1    uri  Ljava/net/URI;
            0    1     2  proxy  Ljava/net/InetSocketAddress;
    MethodParameters:
       Name  Flags
      uri    
      proxy  

  jdk.incubator.http.Http2Connection getConnectionFor(jdk.incubator.http.HttpRequestImpl);
    descriptor: (Ljdk/incubator/http/HttpRequestImpl;)Ljdk/incubator/http/Http2Connection;
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // jdk.incubator.http.Http2ClientImpl this
        start local 1 // jdk.incubator.http.HttpRequestImpl req
         0: .line 83
            aload 1 /* req */
            invokevirtual jdk.incubator.http.HttpRequestImpl.uri:()Ljava/net/URI;
            astore 2 /* uri */
        start local 2 // java.net.URI uri
         1: .line 84
            aload 1 /* req */
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.client:Ljdk/incubator/http/HttpClientImpl;
            invokevirtual jdk.incubator.http.HttpRequestImpl.proxy:(Ljdk/incubator/http/HttpClientImpl;)Ljava/net/InetSocketAddress;
            astore 3 /* proxy */
        start local 3 // java.net.InetSocketAddress proxy
         2: .line 85
            aload 2 /* uri */
            aload 3 /* proxy */
            invokestatic jdk.incubator.http.Http2Connection.keyFor:(Ljava/net/URI;Ljava/net/InetSocketAddress;)Ljava/lang/String;
            astore 4 /* key */
        start local 4 // java.lang.String key
         3: .line 86
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.incubator.http.Http2Connection
            astore 5 /* connection */
        start local 5 // jdk.incubator.http.Http2Connection connection
         4: .line 87
            aload 5 /* connection */
            ifnull 6
         5: .line 88
            aload 5 /* connection */
            areturn
         6: .line 90
      StackMap locals: jdk.incubator.http.Http2ClientImpl jdk.incubator.http.HttpRequestImpl java.net.URI java.net.InetSocketAddress java.lang.String jdk.incubator.http.Http2Connection
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            dup
            astore 6
            monitorenter
         7: .line 91
            goto 15
         8: .line 92
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* req */
            invokevirtual jdk.incubator.http.HttpRequestImpl.secure:()Z
            ifne 11
         9: .line 93
            aload 6
            monitorexit
        10: aconst_null
            areturn
        11: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            aload 4 /* key */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 14
        12: .line 96
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            aload 4 /* key */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 97
            goto 16
        14: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            invokevirtual java.lang.Object.wait:()V
        15: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.incubator.http.Http2Connection
            dup
            astore 5 /* connection */
            ifnull 8
        16: .line 90
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 6
            monitorexit
        19: athrow
        20: .line 103
      StackMap locals:
      StackMap stack:
            aload 5 /* connection */
            ifnull 22
        21: .line 104
            aload 5 /* connection */
            areturn
        22: .line 108
      StackMap locals:
      StackMap stack:
            new jdk.incubator.http.Http2Connection
            dup
            aload 1 /* req */
            aload 0 /* this */
            invokespecial jdk.incubator.http.Http2Connection.<init>:(Ljdk/incubator/http/HttpRequestImpl;Ljdk/incubator/http/Http2ClientImpl;)V
            astore 5 /* connection */
        23: .line 109
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 6 /* t */
        start local 6 // java.lang.Throwable t
        25: .line 110
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            dup
            astore 7
            monitorenter
        26: .line 111
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            aload 4 /* key */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        27: .line 112
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            invokevirtual java.lang.Object.notifyAll:()V
        28: .line 110
            aload 7
            monitorexit
        29: goto 32
      StackMap locals: jdk.incubator.http.Http2ClientImpl jdk.incubator.http.HttpRequestImpl java.net.URI java.net.InetSocketAddress java.lang.String jdk.incubator.http.Http2Connection java.lang.Throwable java.util.Set
      StackMap stack: java.lang.Throwable
        30: aload 7
            monitorexit
        31: athrow
        32: .line 114
      StackMap locals:
      StackMap stack:
            aload 6 /* t */
            athrow
        end local 6 // java.lang.Throwable t
        33: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            dup
            astore 6
            monitorenter
        34: .line 117
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 4 /* key */
            aload 5 /* connection */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 118
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            aload 4 /* key */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        36: .line 119
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.opening:Ljava/util/Set;
            invokevirtual java.lang.Object.notifyAll:()V
        37: .line 116
            aload 6
            monitorexit
        38: goto 41
      StackMap locals: jdk.incubator.http.Http2ClientImpl jdk.incubator.http.HttpRequestImpl java.net.URI java.net.InetSocketAddress java.lang.String jdk.incubator.http.Http2Connection java.util.Set
      StackMap stack: java.lang.Throwable
        39: aload 6
            monitorexit
        40: athrow
        41: .line 121
      StackMap locals:
      StackMap stack:
            aload 5 /* connection */
            areturn
        end local 5 // jdk.incubator.http.Http2Connection connection
        end local 4 // java.lang.String key
        end local 3 // java.net.InetSocketAddress proxy
        end local 2 // java.net.URI uri
        end local 1 // jdk.incubator.http.HttpRequestImpl req
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   42     0        this  Ljdk/incubator/http/Http2ClientImpl;
            0   42     1         req  Ljdk/incubator/http/HttpRequestImpl;
            1   42     2         uri  Ljava/net/URI;
            2   42     3       proxy  Ljava/net/InetSocketAddress;
            3   42     4         key  Ljava/lang/String;
            4   42     5  connection  Ljdk/incubator/http/Http2Connection;
           25   33     6           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7    10      18  any
          11    17      18  any
          18    19      18  any
          22    23      24  Class java.lang.Throwable
          26    29      30  any
          30    31      30  any
          34    38      39  any
          39    40      39  any
    Exceptions:
      throws java.io.IOException, java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      req   

  void putConnection(jdk.incubator.http.Http2Connection);
    descriptor: (Ljdk/incubator/http/Http2Connection;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.incubator.http.Http2ClientImpl this
        start local 1 // jdk.incubator.http.Http2Connection c
         0: .line 130
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 1 /* c */
            invokevirtual jdk.incubator.http.Http2Connection.key:()Ljava/lang/String;
            aload 1 /* c */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 131
            return
        end local 1 // jdk.incubator.http.Http2Connection c
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/Http2ClientImpl;
            0    2     1     c  Ljdk/incubator/http/Http2Connection;
    MethodParameters:
      Name  Flags
      c     

  void deleteConnection(jdk.incubator.http.Http2Connection);
    descriptor: (Ljdk/incubator/http/Http2Connection;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.http.Http2ClientImpl this
        start local 1 // jdk.incubator.http.Http2Connection c
         0: .line 134
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.connections:Ljava/util/Map;
            aload 1 /* c */
            invokevirtual jdk.incubator.http.Http2Connection.key:()Ljava/lang/String;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 135
            return
        end local 1 // jdk.incubator.http.Http2Connection c
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/Http2ClientImpl;
            0    2     1     c  Ljdk/incubator/http/Http2Connection;
    MethodParameters:
      Name  Flags
      c     

  jdk.incubator.http.HttpClientImpl client();
    descriptor: ()Ljdk/incubator/http/HttpClientImpl;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.Http2ClientImpl this
         0: .line 138
            aload 0 /* this */
            getfield jdk.incubator.http.Http2ClientImpl.client:Ljdk/incubator/http/HttpClientImpl;
            areturn
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/Http2ClientImpl;

  java.lang.String getSettingsString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // jdk.incubator.http.Http2ClientImpl this
         0: .line 143
            aload 0 /* this */
            invokevirtual jdk.incubator.http.Http2ClientImpl.getClientSettings:()Ljdk/incubator/http/internal/frame/SettingsFrame;
            astore 1 /* sf */
        start local 1 // jdk.incubator.http.internal.frame.SettingsFrame sf
         1: .line 144
            aload 1 /* sf */
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.toByteArray:()[B
            astore 2 /* settings */
        start local 2 // byte[] settings
         2: .line 145
            invokestatic java.util.Base64.getUrlEncoder:()Ljava/util/Base64$Encoder;
         3: .line 146
            invokevirtual java.util.Base64$Encoder.withoutPadding:()Ljava/util/Base64$Encoder;
         4: .line 145
            astore 3 /* encoder */
        start local 3 // java.util.Base64$Encoder encoder
         5: .line 147
            aload 3 /* encoder */
            aload 2 /* settings */
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            areturn
        end local 3 // java.util.Base64$Encoder encoder
        end local 2 // byte[] settings
        end local 1 // jdk.incubator.http.internal.frame.SettingsFrame sf
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/incubator/http/Http2ClientImpl;
            1    6     1        sf  Ljdk/incubator/http/internal/frame/SettingsFrame;
            2    6     2  settings  [B
            5    6     3   encoder  Ljava/util/Base64$Encoder;

  jdk.incubator.http.internal.frame.SettingsFrame getClientSettings();
    descriptor: ()Ljdk/incubator/http/internal/frame/SettingsFrame;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // jdk.incubator.http.Http2ClientImpl this
         0: .line 153
            new jdk.incubator.http.internal.frame.SettingsFrame
            dup
            invokespecial jdk.incubator.http.internal.frame.SettingsFrame.<init>:()V
            astore 1 /* frame */
        start local 1 // jdk.incubator.http.internal.frame.SettingsFrame frame
         1: .line 154
            aload 1 /* frame */
            iconst_1
         2: .line 155
            ldc "jdk.httpclient.hpack.maxheadertablesize"
            sipush 16384
         3: .line 154
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/frame/SettingsFrame;
            pop
         4: .line 156
            aload 1 /* frame */
            iconst_2
         5: .line 157
            ldc "jdk.httpclient.enablepush"
            iconst_1
         6: .line 156
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/frame/SettingsFrame;
            pop
         7: .line 158
            aload 1 /* frame */
            iconst_3
         8: .line 159
            ldc "jdk.httpclient.maxstreams"
            bipush 16
         9: .line 158
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/frame/SettingsFrame;
            pop
        10: .line 160
            aload 1 /* frame */
            iconst_4
        11: .line 161
            ldc "jdk.httpclient.windowsize"
            ldc 65535
        12: .line 160
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/frame/SettingsFrame;
            pop
        13: .line 162
            aload 1 /* frame */
            iconst_5
        14: .line 163
            ldc "jdk.httpclient.maxframesize"
            sipush 16384
        15: .line 162
            invokestatic jdk.incubator.http.internal.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
            invokevirtual jdk.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/frame/SettingsFrame;
            pop
        16: .line 164
            aload 1 /* frame */
            areturn
        end local 1 // jdk.incubator.http.internal.frame.SettingsFrame frame
        end local 0 // jdk.incubator.http.Http2ClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Ljdk/incubator/http/Http2ClientImpl;
            1   17     1  frame  Ljdk/incubator/http/internal/frame/SettingsFrame;
}
SourceFile: "Http2ClientImpl.java"
InnerClasses:
  public Encoder = java.util.Base64$Encoder of java.util.Base64