public class org.graalvm.component.installer.remote.ProxyConnectionFactory implements org.graalvm.component.installer.URLConnectionFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.remote.ProxyConnectionFactory
  super_class: java.lang.Object
{
  private static final int DEFAULT_CONNECT_DELAY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static final java.lang.String PROXY_SCHEME_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "http://"

  private final org.graalvm.component.installer.Feedback feedback;
    descriptor: Lorg/graalvm/component/installer/Feedback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.net.URL urlBase;
    descriptor: Ljava/net/URL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector winningConnector;
    descriptor: Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.ExecutorService connectors;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  java.lang.String envHttpProxy;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String envHttpsProxy;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private int connectDelay;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int directConnectDelay;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 72
            ldc "org.graalvm.component.installer.connectDelaySec"
            bipush 10
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_CONNECT_DELAY:I
         1: .line 78
            ldc "org.graalvm.component.installer.directConnectDelaySec"
            bipush 20
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_DIRECT_CONNECT_DELAY:I
         2: .line 80
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.component.installer.Feedback, java.net.URL);
    descriptor: (Lorg/graalvm/component/installer/Feedback;Ljava/net/URL;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // org.graalvm.component.installer.Feedback feedback
        start local 2 // java.net.URL urlBase
         0: .line 114
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 93
            aload 0 /* this */
            invokestatic java.util.concurrent.Executors.newCachedThreadPool:()Ljava/util/concurrent/ExecutorService;
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.connectors:Ljava/util/concurrent/ExecutorService;
         2: .line 99
            aload 0 /* this */
            ldc "http_proxy"
            ldc "http_proxy"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpProxy:Ljava/lang/String;
         3: .line 105
            aload 0 /* this */
            ldc "https_proxy"
            ldc "https_proxy"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpsProxy:Ljava/lang/String;
         4: .line 110
            aload 0 /* this */
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_CONNECT_DELAY:I
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.connectDelay:I
         5: .line 112
            aload 0 /* this */
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_DIRECT_CONNECT_DELAY:I
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.directConnectDelay:I
         6: .line 115
            aload 0 /* this */
            aload 1 /* feedback */
            ldc Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            invokeinterface org.graalvm.component.installer.Feedback.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.feedback:Lorg/graalvm/component/installer/Feedback;
         7: .line 116
            aload 0 /* this */
            aload 2 /* urlBase */
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.urlBase:Ljava/net/URL;
         8: .line 117
            return
        end local 2 // java.net.URL urlBase
        end local 1 // org.graalvm.component.installer.Feedback feedback
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    9     1  feedback  Lorg/graalvm/component/installer/Feedback;
            0    9     2   urlBase  Ljava/net/URL;
    MethodParameters:
          Name  Flags
      feedback  
      urlBase   

  public void setConnectDelay(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // int delay
        start local 2 // int directDelay
         0: .line 127
            iload 1 /* delay */
            ifge 2
         1: .line 128
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* delay */
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.connectDelay:I
         3: .line 131
            iload 2 /* directDelay */
            iflt 6
         4: .line 132
            aload 0 /* this */
            iload 2 /* directDelay */
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.directConnectDelay:I
         5: .line 133
            goto 8
         6: .line 135
      StackMap locals:
      StackMap stack:
            fconst_1
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_DIRECT_CONNECT_DELAY:I
            i2f
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_CONNECT_DELAY:I
            i2f
            fdiv
            invokestatic java.lang.Math.min:(FF)F
            fstore 3 /* factor */
        start local 3 // float factor
         7: .line 136
            aload 0 /* this */
            iload 1 /* delay */
            i2f
            fload 3 /* factor */
            fmul
            invokestatic java.lang.Math.round:(F)I
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.directConnectDelay:I
        end local 3 // float factor
         8: .line 138
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int directDelay
        end local 1 // int delay
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    9     1        delay  I
            0    9     2  directDelay  I
            7    8     3       factor  F
    MethodParameters:
             Name  Flags
      delay        
      directDelay  

  public void setConnectDelayFactor(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // float factor
         0: .line 146
            aload 0 /* this */
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_CONNECT_DELAY:I
            i2f
            fload 1 /* factor */
            fmul
            invokestatic java.lang.Math.round:(F)I
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.connectDelay:I
         1: .line 147
            aload 0 /* this */
            getstatic org.graalvm.component.installer.remote.ProxyConnectionFactory.DEFAULT_DIRECT_CONNECT_DELAY:I
            i2f
            fload 1 /* factor */
            fmul
            invokestatic java.lang.Math.round:(F)I
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.directConnectDelay:I
         2: .line 148
            return
        end local 1 // float factor
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    3     1  factor  F
    MethodParameters:
        Name  Flags
      factor  

  public org.graalvm.component.installer.remote.ProxyConnectionFactory setProxy(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // boolean secure
        start local 2 // java.lang.String proxyURI
         0: .line 151
            iload 1 /* secure */
            ifeq 3
         1: .line 152
            aload 0 /* this */
            aload 2 /* proxyURI */
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpsProxy:Ljava/lang/String;
         2: .line 153
            goto 4
         3: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* proxyURI */
            putfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpProxy:Ljava/lang/String;
         4: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String proxyURI
        end local 1 // boolean secure
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    5     1    secure  Z
            0    5     2  proxyURI  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      secure    
      proxyURI  

  public java.net.URLConnection openConnection(java.net.URI, java.util.function.Consumer<java.net.URLConnection>);
    descriptor: (Ljava/net/URI;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // java.net.URI relative
        start local 2 // java.util.function.Consumer configCallback
         0: .line 160
            aload 1 /* relative */
            ifnull 5
         1: .line 162
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.urlBase:Ljava/net/URL;
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            aload 1 /* relative */
            invokevirtual java.net.URI.resolve:(Ljava/net/URI;)Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            aload 2 /* configCallback */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory.openConnectionWithProxies:(Ljava/net/URL;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
         2: areturn
         3: .line 163
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            astore 3 /* ex */
        start local 3 // java.net.URISyntaxException ex
         4: .line 164
            new java.io.IOException
            dup
            aload 3 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.net.URISyntaxException ex
         5: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.urlBase:Ljava/net/URL;
            aload 2 /* configCallback */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory.openConnectionWithProxies:(Ljava/net/URL;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
            areturn
        end local 2 // java.util.function.Consumer configCallback
        end local 1 // java.net.URI relative
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    6     1        relative  Ljava/net/URI;
            0    6     2  configCallback  Ljava/util/function/Consumer<Ljava/net/URLConnection;>;
            4    5     3              ex  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.net.URISyntaxException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/net/URI;Ljava/util/function/Consumer<Ljava/net/URLConnection;>;)Ljava/net/URLConnection;
    MethodParameters:
                Name  Flags
      relative        
      configCallback  

  private java.net.URLConnection openConnectionWithProxies(java.net.URL, java.util.function.Consumer<java.net.URLConnection>);
    descriptor: (Ljava/net/URL;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // java.net.URL url
        start local 2 // java.util.function.Consumer configCallback
         0: .line 369
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 3 /* connected */
        start local 3 // java.util.concurrent.CountDownLatch connected
         1: .line 374
            new org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext
            dup
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* configCallback */
            aload 3 /* connected */
            invokespecial org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.<init>:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;Ljava/net/URL;Ljava/util/function/Consumer;Ljava/util/concurrent/CountDownLatch;)V
            astore 7 /* ctx */
        start local 7 // org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext ctx
         2: .line 376
            aload 0 /* this */
            dup
            astore 8
            monitorenter
         3: .line 377
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpProxy:Ljava/lang/String;
            astore 4 /* httpProxy */
        start local 4 // java.lang.String httpProxy
         4: .line 378
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.envHttpsProxy:Ljava/lang/String;
            astore 5 /* httpsProxy */
        start local 5 // java.lang.String httpsProxy
         5: .line 379
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.winningConnector:Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            astore 6 /* winner */
        start local 6 // org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector winner
         6: .line 376
            aload 8
            monitorexit
         7: goto 10
        end local 6 // org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector winner
        end local 5 // java.lang.String httpsProxy
        end local 4 // java.lang.String httpProxy
      StackMap locals: org.graalvm.component.installer.remote.ProxyConnectionFactory java.net.URL java.util.function.Consumer java.util.concurrent.CountDownLatch top top top org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext org.graalvm.component.installer.remote.ProxyConnectionFactory
      StackMap stack: java.lang.Throwable
         8: aload 8
            monitorexit
         9: athrow
        start local 4 // java.lang.String httpProxy
        start local 5 // java.lang.String httpsProxy
        start local 6 // org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector winner
        10: .line 382
      StackMap locals: org.graalvm.component.installer.remote.ProxyConnectionFactory java.net.URL java.util.function.Consumer java.util.concurrent.CountDownLatch java.lang.String java.lang.String org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext
      StackMap stack:
            iconst_0
            istore 8 /* haveProxy */
        start local 8 // boolean haveProxy
        11: .line 385
            aload 6 /* winner */
            ifnull 15
            aload 6 /* winner */
            aload 1 /* url */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.accepts:(Ljava/net/URL;)Z
            ifeq 15
        12: .line 386
            aload 6 /* winner */
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.bind:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$ConnectionContext;)Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            pop
        13: .line 388
            aload 7 /* ctx */
            aload 6 /* winner */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.submit:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;)V
        14: .line 391
            goto 20
        15: .line 392
      StackMap locals: int
      StackMap stack:
            aload 4 /* httpProxy */
            ifnull 17
        16: .line 393
            aload 7 /* ctx */
            new org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector
            dup
            aload 0 /* this */
            aload 4 /* httpProxy */
            invokespecial org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.<init>:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;Ljava/lang/String;)V
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.bind:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$ConnectionContext;)Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.submit:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;)V
        17: .line 396
      StackMap locals:
      StackMap stack:
            aload 5 /* httpsProxy */
            ifnull 19
            aload 4 /* httpProxy */
            aload 5 /* httpsProxy */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 19
        18: .line 397
            aload 7 /* ctx */
            new org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector
            dup
            aload 0 /* this */
            aload 5 /* httpsProxy */
            invokespecial org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.<init>:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;Ljava/lang/String;)V
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.bind:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$ConnectionContext;)Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.submit:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;)V
        19: .line 399
      StackMap locals:
      StackMap stack:
            aload 7 /* ctx */
            new org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector
            dup
            aload 0 /* this */
            aconst_null
            invokespecial org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.<init>:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;Ljava/lang/String;)V
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector.bind:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$ConnectionContext;)Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.submit:(Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;)V
        20: .line 402
      StackMap locals:
      StackMap stack:
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.start:()V
        21: .line 404
            iload 8 /* haveProxy */
            ifeq 22
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.connectDelay:I
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.directConnectDelay:I
      StackMap locals:
      StackMap stack: int
        23: istore 9 /* shouldDelay */
        start local 9 // int shouldDelay
        24: .line 406
            aconst_null
            astore 10 /* res */
        start local 10 // java.net.URLConnection res
        25: .line 409
            iload 9 /* shouldDelay */
            ifle 30
        26: .line 410
            aload 3 /* connected */
            iload 9 /* shouldDelay */
            i2l
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 28
        27: .line 411
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.getConnectException:()Ljava/io/IOException;
            athrow
        28: .line 414
      StackMap locals: int java.net.URLConnection
      StackMap stack:
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.getConnection:()Ljava/net/URLConnection;
            astore 10 /* res */
        29: .line 416
            goto 35
        30: .line 418
      StackMap locals:
      StackMap stack:
            aload 3 /* connected */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        31: .line 419
            aload 7 /* ctx */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext.getConnection:()Ljava/net/URLConnection;
            astore 10 /* res */
        32: .line 421
            goto 35
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        33: pop
        34: .line 422
            new java.net.ConnectException
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.remote.ProxyConnectionFactory.feedback:Lorg/graalvm/component/installer/Feedback;
            ldc "EXC_InterruptedConnectingTo"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* url */
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.net.ConnectException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 424
      StackMap locals:
      StackMap stack:
            aload 10 /* res */
            areturn
        end local 10 // java.net.URLConnection res
        end local 9 // int shouldDelay
        end local 8 // boolean haveProxy
        end local 7 // org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext ctx
        end local 6 // org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector winner
        end local 5 // java.lang.String httpsProxy
        end local 4 // java.lang.String httpProxy
        end local 3 // java.util.concurrent.CountDownLatch connected
        end local 2 // java.util.function.Consumer configCallback
        end local 1 // java.net.URL url
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0            this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0   36     1             url  Ljava/net/URL;
            0   36     2  configCallback  Ljava/util/function/Consumer<Ljava/net/URLConnection;>;
            1   36     3       connected  Ljava/util/concurrent/CountDownLatch;
            4    8     4       httpProxy  Ljava/lang/String;
           10   36     4       httpProxy  Ljava/lang/String;
            5    8     5      httpsProxy  Ljava/lang/String;
           10   36     5      httpsProxy  Ljava/lang/String;
            6    8     6          winner  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
           10   36     6          winner  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$Connector;
            2   36     7             ctx  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory$ConnectionContext;
           11   36     8       haveProxy  Z
           24   36     9     shouldDelay  I
           25   36    10             res  Ljava/net/URLConnection;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
          25    32      33  Class java.lang.InterruptedException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/net/URL;Ljava/util/function/Consumer<Ljava/net/URLConnection;>;)Ljava/net/URLConnection;
    MethodParameters:
                Name  Flags
      url             
      configCallback  

  public java.net.URLConnection createConnection(java.net.URL, java.util.function.Consumer<java.net.URLConnection>);
    descriptor: (Ljava/net/URL;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
        start local 1 // java.net.URL u
        start local 2 // java.util.function.Consumer configCallback
         0: .line 430
            aload 0 /* this */
            aload 1 /* u */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            aload 2 /* configCallback */
            invokevirtual org.graalvm.component.installer.remote.ProxyConnectionFactory.openConnection:(Ljava/net/URI;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
         1: areturn
         2: .line 431
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            astore 3 /* ex */
        start local 3 // java.net.URISyntaxException ex
         3: .line 432
            new java.io.IOException
            dup
            aload 3 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.net.URISyntaxException ex
        end local 2 // java.util.function.Consumer configCallback
        end local 1 // java.net.URL u
        end local 0 // org.graalvm.component.installer.remote.ProxyConnectionFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/graalvm/component/installer/remote/ProxyConnectionFactory;
            0    4     1               u  Ljava/net/URL;
            0    4     2  configCallback  Ljava/util/function/Consumer<Ljava/net/URLConnection;>;
            3    4     3              ex  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.URISyntaxException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/net/URL;Ljava/util/function/Consumer<Ljava/net/URLConnection;>;)Ljava/net/URLConnection;
    MethodParameters:
                Name  Flags
      u               
      configCallback  
}
SourceFile: "ProxyConnectionFactory.java"
NestMembers:
  org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext  org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector
InnerClasses:
  private ConnectionContext = org.graalvm.component.installer.remote.ProxyConnectionFactory$ConnectionContext of org.graalvm.component.installer.remote.ProxyConnectionFactory
  final Connector = org.graalvm.component.installer.remote.ProxyConnectionFactory$Connector of org.graalvm.component.installer.remote.ProxyConnectionFactory