public class org.graalvm.component.installer.CatalogIterableTest extends org.graalvm.component.installer.CommandTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.CatalogIterableTest
  super_class: org.graalvm.component.installer.CommandTestBase
{
  public final org.graalvm.component.installer.persist.ProxyResource proxyResource;
    descriptor: Lorg/graalvm/component/installer/persist/ProxyResource;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.junit.Rule()

  private static final java.lang.String TEST_CATALOG_URL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "test://release/catalog.properties"

  private org.graalvm.component.installer.remote.RemoteCatalogDownloader downloader;
    descriptor: Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 59
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.CommandTestBase.<init>:()V
         1: .line 60
            aload 0 /* this */
            new org.graalvm.component.installer.persist.ProxyResource
            dup
            invokespecial org.graalvm.component.installer.persist.ProxyResource.<init>:()V
            putfield org.graalvm.component.installer.CatalogIterableTest.proxyResource:Lorg/graalvm/component/installer/persist/ProxyResource;
         2: .line 59
            return
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;

  public void setUp();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 65
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.CommandTestBase.setUp:()V
         1: .line 66
            return
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public void tearDown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 70
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            ifnull 2
         1: .line 71
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.close:()V
         2: .line 73
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.After()

  public void testRemoteNames();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 77
            aload 0 /* this */
            ldc "persist/data/truffleruby2.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            ldc "testComponent"
            ldc "test"
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.initRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 79
            ldc "test"
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.getSpecification:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 80
            ldc "testComponent"
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.getDisplayName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 81
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.isComplete:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 82
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 83
            return
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCreateMetaLoader();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 87
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            ldc "testComponent"
            ldc "test"
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.initRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 89
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            astore 1 /* ldr */
        start local 1 // org.graalvm.component.installer.persist.MetadataLoader ldr
         2: .line 90
            aload 1 /* ldr */
            iconst_0
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.setNoVerifySymlinks:(Z)V
         3: .line 91
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadPaths:()V
         4: .line 92
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadPermissions:()Ljava/util/Map;
            pop
         5: .line 93
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadSymlinks:()Ljava/util/Map;
            pop
         6: .line 94
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 2 /* meta */
        start local 2 // org.graalvm.component.installer.model.ComponentInfo meta
         7: .line 96
            ldc "ruby"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 97
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getInfoPath:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         9: .line 98
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getLicensePath:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
        10: .line 99
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getPaths:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        11: .line 100
            ldc "TruffleRuby 0.33-dev"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 101
            ldc "0.33-dev"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getVersionString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 103
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        14: .line 104
            return
        end local 2 // org.graalvm.component.installer.model.ComponentInfo meta
        end local 1 // org.graalvm.component.installer.persist.MetadataLoader ldr
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
            2   15     1   ldr  Lorg/graalvm/component/installer/persist/MetadataLoader;
            7   15     2  meta  Lorg/graalvm/component/installer/model/ComponentInfo;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testCreateFileLoader();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 108
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            ldc "testComponent"
            ldc "test"
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.initRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 110
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.createFileLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            astore 1 /* ldr */
        start local 1 // org.graalvm.component.installer.persist.MetadataLoader ldr
         2: .line 111
            aload 1 /* ldr */
            iconst_0
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.setNoVerifySymlinks:(Z)V
         3: .line 112
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadPaths:()V
         4: .line 113
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadPermissions:()Ljava/util/Map;
            pop
         5: .line 114
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.loadSymlinks:()Ljava/util/Map;
            pop
         6: .line 115
            aload 1 /* ldr */
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            astore 2 /* meta */
        start local 2 // org.graalvm.component.installer.model.ComponentInfo meta
         7: .line 117
            ldc "ruby"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 118
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getInfoPath:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         9: .line 119
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getPaths:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 120
            ldc "TruffleRuby 0.33-dev"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getName:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 121
            ldc "0.33-dev"
            aload 2 /* meta */
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getVersionString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 123
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        13: .line 124
            return
        end local 2 // org.graalvm.component.installer.model.ComponentInfo meta
        end local 1 // org.graalvm.component.installer.persist.MetadataLoader ldr
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
            2   14     1   ldr  Lorg/graalvm/component/installer/persist/MetadataLoader;
            7   14     2  meta  Lorg/graalvm/component/installer/model/ComponentInfo;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testVerifyRemoteJars();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 128
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            ldc "testComponent"
            ldc "test"
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.initRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 129
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.info:Lorg/graalvm/component/installer/model/ComponentInfo;
            ldc "d3a45ea326b379cc3d543cc56130ee9bd395fd1c1d51a470e8c2c8af1129829c"
            invokestatic org.graalvm.component.installer.SystemUtils.toHashBytes:(Ljava/lang/String;)[B
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.setShaDigest:([B)V
         2: .line 132
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Ljava/io/IOException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         3: .line 133
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc "ERR_FileDigestError"
            invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
         4: .line 134
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface org.graalvm.component.installer.ComponentParam.createFileLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            pop
         5: .line 135
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 136
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         8: .line 137
            aload 1
            athrow
         9: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        10: .line 138
            return
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
      Exception table:
        from    to  target  type
           2     6       6  any
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  void addRemoteComponent(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
        start local 1 // java.lang.String relative
        start local 2 // java.lang.String u
        start local 3 // boolean addParam
         0: .line 141
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.storage:Lorg/graalvm/component/installer/commands/MockStorage;
            getfield org.graalvm.component.installer.commands.MockStorage.graalInfo:Ljava/util/Map;
            ldc "graalvm_version"
            ldc "0.33-dev"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 142
            aload 0 /* this */
            aload 1 /* relative */
            aload 2 /* u */
            aconst_null
            aconst_null
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.initRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         2: .line 143
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.catalogStorage:Lorg/graalvm/component/installer/commands/MockStorage;
            getfield org.graalvm.component.installer.commands.MockStorage.installed:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.info:Lorg/graalvm/component/installer/model/ComponentInfo;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 144
            iload 3 /* addParam */
            ifeq 5
         4: .line 145
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.components:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 147
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean addParam
        end local 2 // java.lang.String u
        end local 1 // java.lang.String relative
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/component/installer/CatalogIterableTest;
            0    6     1  relative  Ljava/lang/String;
            0    6     2         u  Ljava/lang/String;
            0    6     3  addParam  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      relative  
      u         
      addParam  

  public void testReadComponentMetadataNoNetwork();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 151
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         1: .line 152
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "ruby"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 153
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         3: .line 154
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 155
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.graalvm.component.installer.CatalogIterableTest org.graalvm.component.installer.remote.CatalogIterable top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 2 /* p */
        start local 2 // org.graalvm.component.installer.ComponentParam p
         6: .line 156
            aload 2 /* p */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getRemoteURL:()Ljava/net/URL;
            astore 4 /* remoteU */
        start local 4 // java.net.URL remoteU
         7: .line 157
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 4 /* remoteU */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 4 // java.net.URL remoteU
        end local 2 // org.graalvm.component.installer.ComponentParam p
         8: .line 155
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 159
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 160
            return
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            3   11     1      cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            6    8     2        p  Lorg/graalvm/component/installer/ComponentParam;
            7    8     4  remoteU  Ljava/net/URL;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUnknownComponentSpecified();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 164
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Lorg/graalvm/component/installer/FailedOperationException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         1: .line 165
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc "REMOTE_UnknownComponentId"
            invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
         2: .line 166
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         3: .line 167
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "r"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 168
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         5: .line 169
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 170
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            pop
         7: .line 171
            return
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
            5    8     1   cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUnknownComponentButExistingFile();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 179
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Lorg/graalvm/component/installer/FailedOperationException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         1: .line 180
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc "REMOTE_UnknownComponentMaybeFile"
            invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
         2: .line 181
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         3: .line 182
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.folder:Lorg/junit/rules/TemporaryFolder;
            ldc "mistyped-component.jar"
            invokevirtual org.junit.rules.TemporaryFolder.newFile:(Ljava/lang/String;)Ljava/io/File;
            astore 1 /* mistyped */
        start local 1 // java.io.File mistyped
         4: .line 183
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            aload 1 /* mistyped */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 184
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 2 /* cit */
        start local 2 // org.graalvm.component.installer.remote.CatalogIterable cit
         6: .line 185
            aload 2 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 186
            aload 2 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            pop
         8: .line 187
            return
        end local 2 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 1 // java.io.File mistyped
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4    9     1  mistyped  Ljava/io/File;
            6    9     2       cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMetaAccessesDirectURL();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 191
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         1: .line 192
            aload 0 /* this */
            new org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getDisplayName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getSpecification:()Ljava/lang/String;
            aload 0 /* this */
            iconst_0
            invokespecial org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam.<init>:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)V
            putfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
         2: .line 193
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.components:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 195
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getRemoteURL:()Ljava/net/URL;
            astore 1 /* remoteU */
        start local 1 // java.net.URL remoteU
         4: .line 196
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 1 /* remoteU */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 197
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 198
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.isComplete:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 199
            return
        end local 1 // java.net.URL remoteU
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4    8     1  remoteU  Ljava/net/URL;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDirectURLAccessedJustOnce();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 203
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         1: .line 204
            aload 0 /* this */
            new org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getDisplayName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getSpecification:()Ljava/lang/String;
            aload 0 /* this */
            iconst_0
            invokespecial org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam.<init>:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)V
            putfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
         2: .line 205
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.components:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 207
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getRemoteURL:()Ljava/net/URL;
            astore 1 /* remoteU */
        start local 1 // java.net.URL remoteU
         4: .line 208
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 1 /* remoteU */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 209
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 210
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.isComplete:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 212
            invokestatic org.graalvm.component.installer.persist.test.Handler.clearVisited:()V
         8: .line 214
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getArchive:()Lorg/graalvm/component/installer/Archive;
            astore 2 /* jf */
        start local 2 // org.graalvm.component.installer.Archive jf
         9: .line 215
            aload 2 /* jf */
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
        10: .line 216
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokestatic org.graalvm.component.installer.persist.test.Handler.isVisited:(Ljava/net/URL;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        11: .line 217
            return
        end local 2 // org.graalvm.component.installer.Archive jf
        end local 1 // java.net.URL remoteU
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4   12     1  remoteU  Ljava/net/URL;
            9   12     2       jf  Lorg/graalvm/component/installer/Archive;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDirectURLJarClosedAfterMeta();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 221
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         1: .line 222
            aload 0 /* this */
            new org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getDisplayName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getSpecification:()Ljava/lang/String;
            aload 0 /* this */
            iconst_0
            invokespecial org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam.<init>:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)V
            putfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
         2: .line 223
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.components:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 225
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getRemoteURL:()Ljava/net/URL;
            astore 1 /* remoteU */
        start local 1 // java.net.URL remoteU
         4: .line 226
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 1 /* remoteU */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 227
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getArchive:()Lorg/graalvm/component/installer/Archive;
            checkcast org.graalvm.component.installer.jar.JarArchive
            astore 2 /* jf */
        start local 2 // org.graalvm.component.installer.jar.JarArchive jf
         6: .line 228
            aload 2 /* jf */
            ldc "META-INF"
            invokevirtual org.graalvm.component.installer.jar.JarArchive.getEntry:(Ljava/lang/String;)Lorg/graalvm/component/installer/Archive$FileEntry;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         7: .line 230
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.close:()V
         8: .line 232
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Ljava/lang/IllegalStateException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         9: .line 233
            aload 2 /* jf */
            ldc "META-INF"
            invokevirtual org.graalvm.component.installer.jar.JarArchive.getEntry:(Ljava/lang/String;)Lorg/graalvm/component/installer/Archive$FileEntry;
            pop
        10: .line 234
            return
        end local 2 // org.graalvm.component.installer.jar.JarArchive jf
        end local 1 // java.net.URL remoteU
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4   11     1  remoteU  Ljava/net/URL;
            6   11     2       jf  Lorg/graalvm/component/installer/jar/JarArchive;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDirectURLJarClosedAfterJar();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 238
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         1: .line 239
            aload 0 /* this */
            new org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam
            dup
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getDisplayName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getSpecification:()Ljava/lang/String;
            aload 0 /* this */
            iconst_0
            invokespecial org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam.<init>:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;Lorg/graalvm/component/installer/Feedback;Z)V
            putfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
         2: .line 240
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.components:Ljava/util/List;
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.param:Lorg/graalvm/component/installer/ComponentParam;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 241
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.getArchive:()Lorg/graalvm/component/installer/Archive;
            checkcast org.graalvm.component.installer.jar.JarArchive
            astore 1 /* jf */
        start local 1 // org.graalvm.component.installer.jar.JarArchive jf
         4: .line 242
            aload 1 /* jf */
            ldc "META-INF"
            invokevirtual org.graalvm.component.installer.jar.JarArchive.getEntry:(Ljava/lang/String;)Lorg/graalvm/component/installer/Archive$FileEntry;
            invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
         5: .line 243
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.rparam:Lorg/graalvm/component/installer/remote/RemoteComponentParam;
            invokevirtual org.graalvm.component.installer.remote.RemoteComponentParam.close:()V
         6: .line 244
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Ljava/lang/IllegalStateException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         7: .line 245
            aload 1 /* jf */
            ldc "META-INF"
            invokevirtual org.graalvm.component.installer.jar.JarArchive.getEntry:(Ljava/lang/String;)Lorg/graalvm/component/installer/Archive$FileEntry;
            pop
         8: .line 246
            return
        end local 1 // org.graalvm.component.installer.jar.JarArchive jf
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4    9     1    jf  Lorg/graalvm/component/installer/jar/JarArchive;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testURLDoesNotExist();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 250
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.storage:Lorg/graalvm/component/installer/commands/MockStorage;
            getfield org.graalvm.component.installer.commands.MockStorage.graalInfo:Ljava/util/Map;
            ldc "graalvm_version"
            ldc "0.33-dev"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 251
            aload 0 /* this */
            ldc "persist/data/truffleruby3.jar"
            ldc "test://graalvm.io/download/truffleruby.zip"
            iconst_0
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.addRemoteComponent:(Ljava/lang/String;Ljava/lang/String;Z)V
         2: .line 252
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "ruby"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 253
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            new org.graalvm.component.installer.CatalogIterableTest$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.url:Ljava/net/URL;
            invokespecial org.graalvm.component.installer.CatalogIterableTest$1.<init>:(Lorg/graalvm/component/installer/CatalogIterableTest;Ljava/net/URL;)V
            invokestatic org.graalvm.component.installer.persist.test.Handler.bind:(Ljava/lang/String;Ljava/net/URLConnection;)V
         4: .line 286
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         5: .line 287
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 2 /* rubyComp */
        start local 2 // org.graalvm.component.installer.ComponentParam rubyComp
         6: .line 289
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Lorg/graalvm/component/installer/FailedOperationException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         7: .line 290
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.exception:Lorg/junit/rules/ExpectedException;
            ldc "REMOTE_ErrorDownloadingNotExist"
            invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
         8: .line 292
            aload 2 /* rubyComp */
            invokeinterface org.graalvm.component.installer.ComponentParam.createFileLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            pop
         9: .line 293
            return
        end local 2 // org.graalvm.component.installer.ComponentParam rubyComp
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/graalvm/component/installer/CatalogIterableTest;
            5   10     1       cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            6   10     2  rubyComp  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void setupCatalog();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 299
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.storage:Lorg/graalvm/component/installer/commands/MockStorage;
            getfield org.graalvm.component.installer.commands.MockStorage.graalInfo:Ljava/util/Map;
            ldc "graalvm_version"
            ldc "19.3-dev"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 300
            ldc "commands/cataloginstallDeps.properties"
            astore 1 /* relSpec */
        start local 1 // java.lang.String relSpec
         2: .line 301
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* relSpec */
            invokevirtual java.lang.Class.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* u */
        start local 2 // java.net.URL u
         3: .line 302
            ldc "test://release/catalog.properties"
            aload 2 /* u */
            invokestatic org.graalvm.component.installer.persist.test.Handler.bind:(Ljava/lang/String;Ljava/net/URL;)V
         4: .line 304
            aload 0 /* this */
            new org.graalvm.component.installer.remote.RemoteCatalogDownloader
            dup
            aload 0 /* this */
            aload 0 /* this */
            new java.net.URL
            dup
            ldc "test://release/catalog.properties"
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokespecial org.graalvm.component.installer.remote.RemoteCatalogDownloader.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;Ljava/net/URL;)V
            putfield org.graalvm.component.installer.CatalogIterableTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
         5: .line 305
            aload 0 /* this */
            new org.graalvm.component.installer.model.CatalogContents
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.downloader:Lorg/graalvm/component/installer/remote/RemoteCatalogDownloader;
            invokevirtual org.graalvm.component.installer.remote.RemoteCatalogDownloader.getStorage:()Lorg/graalvm/component/installer/model/ComponentStorage;
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.getLocalRegistry:()Lorg/graalvm/component/installer/model/ComponentRegistry;
            invokespecial org.graalvm.component.installer.model.CatalogContents.<init>:(Lorg/graalvm/component/installer/Feedback;Lorg/graalvm/component/installer/model/ComponentStorage;Lorg/graalvm/component/installer/model/ComponentRegistry;)V
            putfield org.graalvm.component.installer.CatalogIterableTest.registry:Lorg/graalvm/component/installer/ComponentCatalog;
         6: .line 306
            return
        end local 2 // java.net.URL u
        end local 1 // java.lang.String relSpec
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            2    7     1  relSpec  Ljava/lang/String;
            3    7     2        u  Ljava/net/URL;
    Exceptions:
      throws java.lang.Exception

  public void testNoWildcards();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 313
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.setupCatalog:()V
         1: .line 314
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "ruby"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 315
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         3: .line 316
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 2 /* comps */
        start local 2 // java.util.Iterator comps
         4: .line 319
            aload 2 /* comps */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 3 /* c */
        start local 3 // org.graalvm.component.installer.ComponentParam c
         5: .line 320
            aload 2 /* comps */
            invokeinterface java.util.Iterator.hasNext:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         6: .line 321
            ldc "org.graalvm.ruby"
            aload 3 /* c */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 322
            return
        end local 3 // org.graalvm.component.installer.ComponentParam c
        end local 2 // java.util.Iterator comps
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/graalvm/component/installer/CatalogIterableTest;
            3    8     1    cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            4    8     2  comps  Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;
            5    8     3      c  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAllComponents();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 326
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.setupCatalog:()V
         1: .line 327
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "*"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 328
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         3: .line 329
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 2 /* comps */
        start local 2 // java.util.Iterator comps
         4: .line 331
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* fullIds */
        start local 3 // java.util.List fullIds
         5: .line 332
            goto 8
         6: .line 333
      StackMap locals: org.graalvm.component.installer.remote.CatalogIterable java.util.Iterator java.util.List
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 4 /* cp */
        start local 4 // org.graalvm.component.installer.ComponentParam cp
         7: .line 334
            aload 3 /* fullIds */
            aload 4 /* cp */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.component.installer.ComponentParam cp
         8: .line 332
      StackMap locals:
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 336
            ldc 5
            aload 3 /* fullIds */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        10: .line 337
            return
        end local 3 // java.util.List fullIds
        end local 2 // java.util.Iterator comps
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            3   11     1      cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            4   11     2    comps  Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;
            5   11     3  fullIds  Ljava/util/List<Ljava/lang/String;>;
            7    8     4       cp  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testSelectSomeComponents();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 341
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.setupCatalog:()V
         1: .line 342
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "*mage"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 343
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "llvm*"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 344
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         4: .line 345
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 2 /* comps */
        start local 2 // java.util.Iterator comps
         5: .line 347
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* fullIds */
        start local 3 // java.util.List fullIds
         6: .line 348
            goto 9
         7: .line 349
      StackMap locals: org.graalvm.component.installer.remote.CatalogIterable java.util.Iterator java.util.List
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 4 /* cp */
        start local 4 // org.graalvm.component.installer.ComponentParam cp
         8: .line 350
            aload 3 /* fullIds */
            aload 4 /* cp */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.component.installer.ComponentParam cp
         9: .line 348
      StackMap locals:
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 352
            ldc 2
            aload 3 /* fullIds */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        11: .line 353
            return
        end local 3 // java.util.List fullIds
        end local 2 // java.util.Iterator comps
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4   12     1      cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            5   12     2    comps  Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;
            6   12     3  fullIds  Ljava/util/List<Ljava/lang/String;>;
            8    9     4       cp  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testWildardSorted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 357
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.setupCatalog:()V
         1: .line 358
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "r*"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 359
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         3: .line 360
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 2 /* comps */
        start local 2 // java.util.Iterator comps
         4: .line 362
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* fullIds */
        start local 3 // java.util.List fullIds
         5: .line 363
            goto 8
         6: .line 364
      StackMap locals: org.graalvm.component.installer.remote.CatalogIterable java.util.Iterator java.util.List
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 4 /* cp */
        start local 4 // org.graalvm.component.installer.ComponentParam cp
         7: .line 365
            aload 3 /* fullIds */
            aload 4 /* cp */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.component.installer.ComponentParam cp
         8: .line 363
      StackMap locals:
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 367
            ldc 2
            aload 3 /* fullIds */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        10: .line 368
            ldc "org.graalvm.r"
            aload 3 /* fullIds */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 369
            ldc "org.graalvm.ruby"
            aload 3 /* fullIds */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 370
            return
        end local 3 // java.util.List fullIds
        end local 2 // java.util.Iterator comps
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            3   13     1      cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            4   13     2    comps  Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;
            5   13     3  fullIds  Ljava/util/List<Ljava/lang/String;>;
            7    8     4       cp  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMixWildcardsAndLiterals();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
         0: .line 374
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.CatalogIterableTest.setupCatalog:()V
         1: .line 375
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "r*"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 376
            aload 0 /* this */
            getfield org.graalvm.component.installer.CatalogIterableTest.textParams:Ljava/util/List;
            ldc "ruby"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 377
            new org.graalvm.component.installer.remote.CatalogIterable
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.remote.CatalogIterable.<init>:(Lorg/graalvm/component/installer/CommandInput;Lorg/graalvm/component/installer/Feedback;)V
            astore 1 /* cit */
        start local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
         4: .line 378
            aload 1 /* cit */
            invokevirtual org.graalvm.component.installer.remote.CatalogIterable.iterator:()Ljava/util/Iterator;
            astore 2 /* comps */
        start local 2 // java.util.Iterator comps
         5: .line 380
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* fullIds */
        start local 3 // java.util.List fullIds
         6: .line 381
            goto 9
         7: .line 382
      StackMap locals: org.graalvm.component.installer.remote.CatalogIterable java.util.Iterator java.util.List
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.component.installer.ComponentParam
            astore 4 /* cp */
        start local 4 // org.graalvm.component.installer.ComponentParam cp
         8: .line 383
            aload 3 /* fullIds */
            aload 4 /* cp */
            invokeinterface org.graalvm.component.installer.ComponentParam.createMetaLoader:()Lorg/graalvm/component/installer/persist/MetadataLoader;
            invokeinterface org.graalvm.component.installer.persist.MetadataLoader.getComponentInfo:()Lorg/graalvm/component/installer/model/ComponentInfo;
            invokevirtual org.graalvm.component.installer.model.ComponentInfo.getId:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.graalvm.component.installer.ComponentParam cp
         9: .line 381
      StackMap locals:
      StackMap stack:
            aload 2 /* comps */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 385
            ldc 3
            aload 3 /* fullIds */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        11: .line 386
            ldc "org.graalvm.ruby"
            aload 3 /* fullIds */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 387
            ldc "org.graalvm.ruby"
            aload 3 /* fullIds */
            iconst_2
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 388
            return
        end local 3 // java.util.List fullIds
        end local 2 // java.util.Iterator comps
        end local 1 // org.graalvm.component.installer.remote.CatalogIterable cit
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/graalvm/component/installer/CatalogIterableTest;
            4   14     1      cit  Lorg/graalvm/component/installer/remote/CatalogIterable;
            5   14     2    comps  Ljava/util/Iterator<Lorg/graalvm/component/installer/ComponentParam;>;
            6   14     3  fullIds  Ljava/util/List<Ljava/lang/String;>;
            8    9     4       cp  Lorg/graalvm/component/installer/ComponentParam;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public org.graalvm.component.installer.remote.FileDownloader configureDownloader(org.graalvm.component.installer.model.ComponentInfo, org.graalvm.component.installer.remote.FileDownloader);
    descriptor: (Lorg/graalvm/component/installer/model/ComponentInfo;Lorg/graalvm/component/installer/remote/FileDownloader;)Lorg/graalvm/component/installer/remote/FileDownloader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.CatalogIterableTest this
        start local 1 // org.graalvm.component.installer.model.ComponentInfo ci
        start local 2 // org.graalvm.component.installer.remote.FileDownloader dn
         0: .line 392
            aload 2 /* dn */
            areturn
        end local 2 // org.graalvm.component.installer.remote.FileDownloader dn
        end local 1 // org.graalvm.component.installer.model.ComponentInfo ci
        end local 0 // org.graalvm.component.installer.CatalogIterableTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/CatalogIterableTest;
            0    1     1    ci  Lorg/graalvm/component/installer/model/ComponentInfo;
            0    1     2    dn  Lorg/graalvm/component/installer/remote/FileDownloader;
    MethodParameters:
      Name  Flags
      ci    
      dn    
}
SourceFile: "CatalogIterableTest.java"
NestMembers:
  org.graalvm.component.installer.CatalogIterableTest$1
InnerClasses:
  public abstract FileEntry = org.graalvm.component.installer.Archive$FileEntry of org.graalvm.component.installer.Archive
  org.graalvm.component.installer.CatalogIterableTest$1
  DownloadURLParam = org.graalvm.component.installer.DownloadURLIterable$DownloadURLParam of org.graalvm.component.installer.DownloadURLIterable