class org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment implements org.eclipse.jdt.launching.environments.IExecutionEnvironment
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment
  super_class: java.lang.Object
{
  private org.eclipse.jdt.launching.IVMInstallChangedListener fListener;
    descriptor: Lorg/eclipse/jdt/launching/IVMInstallChangedListener;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.core.runtime.IConfigurationElement fElement;
    descriptor: Lorg/eclipse/core/runtime/IConfigurationElement;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.launching.environments.IAccessRuleParticipant fRuleParticipant;
    descriptor: Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Properties fProfileProperties;
    descriptor: Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE

  private boolean fPropertiesInitialized;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<org.eclipse.jdt.launching.IVMInstall> fStrictlyCompatible;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/eclipse/jdt/launching/IVMInstall;>;

  private java.util.List<org.eclipse.jdt.launching.IVMInstall> fCompatibleVMs;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/eclipse/jdt/launching/IVMInstall;>;

  private org.eclipse.jdt.launching.IVMInstall fDefault;
    descriptor: Lorg/eclipse/jdt/launching/IVMInstall;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] fParticipants;
    descriptor: [Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<org.eclipse.jdt.launching.IVMInstall, java.util.Map<org.eclipse.jdt.launching.environments.IAccessRuleParticipant, org.eclipse.jdt.core.IAccessRule[][]>> fParticipantMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lorg/eclipse/jdt/launching/IVMInstall;Ljava/util/Map<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;[[Lorg/eclipse/jdt/core/IAccessRule;>;>;

  private java.util.Map<org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.core.IAccessRule[][]> fRuleCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lorg/eclipse/jdt/launching/IVMInstall;[[Lorg/eclipse/jdt/core/IAccessRule;>;

  private static final org.eclipse.core.runtime.IPath ALL_PATTERN;
    descriptor: Lorg/eclipse/core/runtime/IPath;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String COMPILER_SETTING_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.eclipse.jdt.core.compiler"

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 160
            new org.eclipse.core.runtime.Path
            dup
            ldc "**/*"
            invokespecial org.eclipse.core.runtime.Path.<init>:(Ljava/lang/String;)V
            putstatic org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.ALL_PATTERN:Lorg/eclipse/core/runtime/IPath;
         1: .line 484
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.eclipse.core.runtime.IConfigurationElement);
    descriptor: (Lorg/eclipse/core/runtime/IConfigurationElement;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.core.runtime.IConfigurationElement element
         0: .line 171
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            new org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment$1
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment$1.<init>:(Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;)V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fListener:Lorg/eclipse/jdt/launching/IVMInstallChangedListener;
         2: .line 125
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fStrictlyCompatible:Ljava/util/Set;
         3: .line 130
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
         4: .line 135
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fDefault:Lorg/eclipse/jdt/launching/IVMInstall;
         5: .line 140
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipants:[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
         6: .line 147
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipantMap:Ljava/util/Map;
         7: .line 155
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleCache:Ljava/util/Map;
         8: .line 172
            aload 0 /* this */
            aload 1 /* element */
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
         9: .line 173
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fPropertiesInitialized:Z
        10: .line 174
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "ruleParticipant"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* attribute */
        start local 2 // java.lang.String attribute
        11: .line 175
            aload 2 /* attribute */
            ifnull 13
        12: .line 176
            aload 0 /* this */
            new org.eclipse.jdt.internal.launching.environments.AccessRuleParticipant
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            invokespecial org.eclipse.jdt.internal.launching.environments.AccessRuleParticipant.<init>:(Lorg/eclipse/core/runtime/IConfigurationElement;)V
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleParticipant:Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
        13: .line 178
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.core.runtime.IConfigurationElement java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fListener:Lorg/eclipse/jdt/launching/IVMInstallChangedListener;
            invokestatic org.eclipse.jdt.launching.JavaRuntime.addVMInstallChangedListener:(Lorg/eclipse/jdt/launching/IVMInstallChangedListener;)V
        14: .line 179
            return
        end local 2 // java.lang.String attribute
        end local 1 // org.eclipse.core.runtime.IConfigurationElement element
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0   15     1    element  Lorg/eclipse/core/runtime/IConfigurationElement;
           11   15     2  attribute  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      element  

  private void init();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 185
            invokestatic org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.getDefault:()Lorg/eclipse/jdt/internal/launching/environments/EnvironmentsManager;
            invokevirtual org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.initializeCompatibilities:()V
         1: .line 186
            return
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public java.lang.String getId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 193
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "id"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 201
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "description"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public org.eclipse.jdt.launching.IVMInstall[] getCompatibleVMs();
    descriptor: ()[Lorg/eclipse/jdt/launching/IVMInstall;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 209
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.init:()V
         1: .line 210
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.launching.IVMInstall
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.launching.IVMInstall[]
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public boolean isStrictlyCompatible(org.eclipse.jdt.launching.IVMInstall);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
         0: .line 218
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.init:()V
         1: .line 219
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fStrictlyCompatible:Ljava/util/Set;
            aload 1 /* vm */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    2     1    vm  Lorg/eclipse/jdt/launching/IVMInstall;
    MethodParameters:
      Name  Flags
      vm    

  public org.eclipse.jdt.launching.IVMInstall getDefaultVM();
    descriptor: ()Lorg/eclipse/jdt/launching/IVMInstall;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 227
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.init:()V
         1: .line 228
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fDefault:Lorg/eclipse/jdt/launching/IVMInstall;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public void setDefaultVM(org.eclipse.jdt.launching.IVMInstall);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
         0: .line 236
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.init:()V
         1: .line 237
            aload 1 /* vm */
            ifnull 3
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            aload 1 /* vm */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 238
            new java.lang.IllegalArgumentException
            dup
            getstatic org.eclipse.jdt.internal.launching.environments.EnvironmentMessages.EnvironmentsManager_0:Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getId:()Ljava/lang/String;
            aastore
            invokestatic org.eclipse.osgi.util.NLS.bind:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* vm */
            ifnull 5
            aload 1 /* vm */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fDefault:Lorg/eclipse/jdt/launching/IVMInstall;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 241
            return
         5: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* vm */
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fDefault:Lorg/eclipse/jdt/launching/IVMInstall;
         6: .line 244
            invokestatic org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.getDefault:()Lorg/eclipse/jdt/internal/launching/environments/EnvironmentsManager;
            invokevirtual org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.updateDefaultVMs:()V
         7: .line 246
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.rebindClasspathContainers:()V
         8: .line 247
            return
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    9     1    vm  Lorg/eclipse/jdt/launching/IVMInstall;
    MethodParameters:
      Name  Flags
      vm    

  private void rebindClasspathContainers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 253
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            invokestatic org.eclipse.jdt.core.JavaCore.create:(Lorg/eclipse/core/resources/IWorkspaceRoot;)Lorg/eclipse/jdt/core/IJavaModel;
            astore 1 /* model */
        start local 1 // org.eclipse.jdt.core.IJavaModel model
         1: .line 254
            aload 1 /* model */
            ifnull 28
         2: .line 256
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* updates */
        start local 2 // java.util.List updates
         3: .line 257
            aload 1 /* model */
            invokeinterface org.eclipse.jdt.core.IJavaModel.getJavaProjects:()[Lorg/eclipse/jdt/core/IJavaProject;
            astore 3 /* javaProjects */
        start local 3 // org.eclipse.jdt.core.IJavaProject[] javaProjects
         4: .line 258
            aload 0 /* this */
            invokestatic org.eclipse.jdt.launching.JavaRuntime.newJREContainerPath:(Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;)Lorg/eclipse/core/runtime/IPath;
            astore 4 /* path */
        start local 4 // org.eclipse.core.runtime.IPath path
         5: .line 259
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 18
         7: .line 260
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.jdt.core.IJavaModel java.util.List org.eclipse.jdt.core.IJavaProject[] org.eclipse.core.runtime.IPath int
      StackMap stack:
            aload 3 /* javaProjects */
            iload 5 /* i */
            aaload
            astore 6 /* project */
        start local 6 // org.eclipse.jdt.core.IJavaProject project
         8: .line 261
            aload 6 /* project */
            invokeinterface org.eclipse.jdt.core.IJavaProject.getRawClasspath:()[Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 7 /* rawClasspath */
        start local 7 // org.eclipse.jdt.core.IClasspathEntry[] rawClasspath
         9: .line 262
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        10: goto 16
        11: .line 263
      StackMap locals: org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.core.IClasspathEntry[] int
      StackMap stack:
            aload 7 /* rawClasspath */
            iload 8 /* j */
            aaload
            astore 9 /* entry */
        start local 9 // org.eclipse.jdt.core.IClasspathEntry entry
        12: .line 264
            aload 9 /* entry */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getEntryKind:()I
            iconst_5
            if_icmpne 15
        13: .line 265
            aload 9 /* entry */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getPath:()Lorg/eclipse/core/runtime/IPath;
            aload 4 /* path */
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 266
            aload 2 /* updates */
            aload 6 /* project */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.eclipse.jdt.core.IClasspathEntry entry
        15: .line 262
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* j */
            aload 7 /* rawClasspath */
            arraylength
            if_icmplt 11
        end local 8 // int j
        end local 7 // org.eclipse.jdt.core.IClasspathEntry[] rawClasspath
        end local 6 // org.eclipse.jdt.core.IJavaProject project
        17: .line 259
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 3 /* javaProjects */
            arraylength
            if_icmplt 7
        end local 5 // int i
        19: .line 271
            aload 2 /* updates */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 28
        20: .line 272
            aload 4 /* path */
        21: .line 273
            aload 2 /* updates */
            aload 2 /* updates */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IJavaProject
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IJavaProject[]
        22: .line 274
            aload 2 /* updates */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IClasspathContainer
        23: .line 275
            new org.eclipse.core.runtime.NullProgressMonitor
            dup
            invokespecial org.eclipse.core.runtime.NullProgressMonitor.<init>:()V
        24: .line 272
            invokestatic org.eclipse.jdt.core.JavaCore.setClasspathContainer:(Lorg/eclipse/core/runtime/IPath;[Lorg/eclipse/jdt/core/IJavaProject;[Lorg/eclipse/jdt/core/IClasspathContainer;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 4 // org.eclipse.core.runtime.IPath path
        end local 3 // org.eclipse.jdt.core.IJavaProject[] javaProjects
        end local 2 // java.util.List updates
        25: .line 277
            goto 28
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.jdt.core.IJavaModel
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        26: astore 2 /* e */
        start local 2 // org.eclipse.jdt.core.JavaModelException e
        27: .line 278
            aload 2 /* e */
            invokestatic org.eclipse.jdt.internal.launching.LaunchingPlugin.log:(Ljava/lang/Throwable;)V
        end local 2 // org.eclipse.jdt.core.JavaModelException e
        28: .line 281
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.core.IJavaModel model
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            1   29     1         model  Lorg/eclipse/jdt/core/IJavaModel;
            3   25     2       updates  Ljava/util/List<Lorg/eclipse/jdt/core/IJavaProject;>;
            4   25     3  javaProjects  [Lorg/eclipse/jdt/core/IJavaProject;
            5   25     4          path  Lorg/eclipse/core/runtime/IPath;
            6   19     5             i  I
            8   17     6       project  Lorg/eclipse/jdt/core/IJavaProject;
            9   17     7  rawClasspath  [Lorg/eclipse/jdt/core/IClasspathEntry;
           10   17     8             j  I
           12   15     9         entry  Lorg/eclipse/jdt/core/IClasspathEntry;
           27   28     2             e  Lorg/eclipse/jdt/core/JavaModelException;
      Exception table:
        from    to  target  type
           2    25      26  Class org.eclipse.jdt.core.JavaModelException

  void add(org.eclipse.jdt.launching.IVMInstall, boolean);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
        start local 2 // boolean strictlyCompatible
         0: .line 291
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            aload 1 /* vm */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 292
            return
         2: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            aload 1 /* vm */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 295
            iload 2 /* strictlyCompatible */
            ifeq 5
         4: .line 296
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fStrictlyCompatible:Ljava/util/Set;
            aload 1 /* vm */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 298
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean strictlyCompatible
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    6     1                  vm  Lorg/eclipse/jdt/launching/IVMInstall;
            0    6     2  strictlyCompatible  Z
    MethodParameters:
                    Name  Flags
      vm                  
      strictlyCompatible  

  void remove(org.eclipse.jdt.launching.IVMInstall);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
         0: .line 305
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fCompatibleVMs:Ljava/util/List;
            aload 1 /* vm */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 306
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fStrictlyCompatible:Ljava/util/Set;
            aload 1 /* vm */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 307
            return
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    3     1    vm  Lorg/eclipse/jdt/launching/IVMInstall;
    MethodParameters:
      Name  Flags
      vm    

  void initDefaultVM(org.eclipse.jdt.launching.IVMInstall);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
         0: .line 314
            aload 0 /* this */
            aload 1 /* vm */
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fDefault:Lorg/eclipse/jdt/launching/IVMInstall;
         1: .line 315
            return
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    2     1    vm  Lorg/eclipse/jdt/launching/IVMInstall;
    MethodParameters:
      Name  Flags
      vm    

  public org.eclipse.jdt.core.IAccessRule[][] getAccessRules(org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.LibraryLocation[], org.eclipse.jdt.core.IJavaProject);
    descriptor: (Lorg/eclipse/jdt/launching/IVMInstall;[Lorg/eclipse/jdt/launching/LibraryLocation;Lorg/eclipse/jdt/core/IJavaProject;)[[Lorg/eclipse/jdt/core/IAccessRule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.IVMInstall vm
        start local 2 // org.eclipse.jdt.launching.LibraryLocation[] libraries
        start local 3 // org.eclipse.jdt.core.IJavaProject project
         0: .line 322
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getParticipants:()[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            astore 4 /* participants */
        start local 4 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
         1: .line 323
            aload 0 /* this */
            aload 4 /* participants */
            aload 1 /* vm */
            aload 2 /* libraries */
            aload 3 /* project */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.collectRulesByParticipant:([Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;Lorg/eclipse/jdt/launching/IVMInstall;[Lorg/eclipse/jdt/launching/LibraryLocation;Lorg/eclipse/jdt/core/IJavaProject;)Ljava/util/Map;
            astore 5 /* rulesByParticipant */
        start local 5 // java.util.Map rulesByParticipant
         2: .line 324
            aload 0 /* this */
            dup
            astore 6
            monitorenter
         3: .line 325
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipantMap:Ljava/util/Map;
            aload 1 /* vm */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 7 /* cachedRules */
        start local 7 // java.util.Map cachedRules
         4: .line 326
            aload 7 /* cachedRules */
            ifnull 5
            aload 7 /* cachedRules */
            aload 5 /* rulesByParticipant */
            invokeinterface java.util.Map.equals:(Ljava/lang/Object;)Z
            ifne 28
         5: .line 327
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.jdt.launching.IVMInstall org.eclipse.jdt.launching.LibraryLocation[] org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] java.util.Map org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment java.util.Map
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* libLists */
        start local 8 // java.util.ArrayList libLists
         6: .line 328
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         7: goto 10
         8: .line 329
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 8 /* libLists */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 328
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 9 /* i */
            aload 2 /* libraries */
            arraylength
            if_icmplt 8
        end local 9 // int i
        11: .line 331
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: goto 16
        13: .line 332
      StackMap locals:
      StackMap stack:
            aload 4 /* participants */
            iload 9 /* i */
            aaload
            astore 10 /* participant */
        start local 10 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant participant
        14: .line 333
            aload 0 /* this */
            aload 5 /* rulesByParticipant */
            aload 10 /* participant */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IAccessRule[][]
            aload 8 /* libLists */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.addRules:([[Lorg/eclipse/jdt/core/IAccessRule;Ljava/util/ArrayList;)V
        end local 10 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant participant
        15: .line 331
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            aload 4 /* participants */
            arraylength
            if_icmplt 13
        end local 9 // int i
        17: .line 335
            aload 2 /* libraries */
            arraylength
            anewarray org.eclipse.jdt.core.IAccessRule[]
            astore 9 /* allRules */
        start local 9 // org.eclipse.jdt.core.IAccessRule[][] allRules
        18: .line 336
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        19: goto 23
        20: .line 337
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.jdt.launching.IVMInstall org.eclipse.jdt.launching.LibraryLocation[] org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] java.util.Map org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment java.util.Map java.util.ArrayList org.eclipse.jdt.core.IAccessRule[][] int
      StackMap stack:
            aload 8 /* libLists */
            iload 10 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* l */
        start local 11 // java.util.List l
        21: .line 338
            aload 9 /* allRules */
            iload 10 /* i */
            aload 11 /* l */
            aload 11 /* l */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IAccessRule
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IAccessRule[]
            aastore
        end local 11 // java.util.List l
        22: .line 336
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 10 /* i */
            aload 8 /* libLists */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 20
        end local 10 // int i
        24: .line 340
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipantMap:Ljava/util/Map;
            aload 1 /* vm */
            aload 5 /* rulesByParticipant */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 341
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleCache:Ljava/util/Map;
            aload 1 /* vm */
            aload 9 /* allRules */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 342
            aload 9 /* allRules */
            aload 6
            monitorexit
        27: areturn
        end local 9 // org.eclipse.jdt.core.IAccessRule[][] allRules
        end local 8 // java.util.ArrayList libLists
        28: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleCache:Ljava/util/Map;
            aload 1 /* vm */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IAccessRule[][]
            aload 6
            monitorexit
        29: areturn
        end local 7 // java.util.Map cachedRules
        30: .line 324
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.eclipse.jdt.launching.IVMInstall org.eclipse.jdt.launching.LibraryLocation[] org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] java.util.Map org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        31: athrow
        end local 5 // java.util.Map rulesByParticipant
        end local 4 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
        end local 3 // org.eclipse.jdt.core.IJavaProject project
        end local 2 // org.eclipse.jdt.launching.LibraryLocation[] libraries
        end local 1 // org.eclipse.jdt.launching.IVMInstall vm
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   32     0                this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0   32     1                  vm  Lorg/eclipse/jdt/launching/IVMInstall;
            0   32     2           libraries  [Lorg/eclipse/jdt/launching/LibraryLocation;
            0   32     3             project  Lorg/eclipse/jdt/core/IJavaProject;
            1   32     4        participants  [Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            2   32     5  rulesByParticipant  Ljava/util/Map<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;[[Lorg/eclipse/jdt/core/IAccessRule;>;
            4   30     7         cachedRules  Ljava/util/Map<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;[[Lorg/eclipse/jdt/core/IAccessRule;>;
            6   28     8            libLists  Ljava/util/ArrayList<Ljava/util/List<Lorg/eclipse/jdt/core/IAccessRule;>;>;
            7   11     9                   i  I
           12   17     9                   i  I
           14   15    10         participant  Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
           18   28     9            allRules  [[Lorg/eclipse/jdt/core/IAccessRule;
           19   24    10                   i  I
           21   22    11                   l  Ljava/util/List<Lorg/eclipse/jdt/core/IAccessRule;>;
      Exception table:
        from    to  target  type
           3    27      30  any
          28    29      30  any
          30    31      30  any
    MethodParameters:
           Name  Flags
      vm         
      libraries  
      project    

  private synchronized org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] getParticipants();
    descriptor: ()[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 356
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipants:[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            ifnonnull 13
         1: .line 358
            invokestatic org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.getDefault:()Lorg/eclipse/jdt/internal/launching/environments/EnvironmentsManager;
            invokevirtual org.eclipse.jdt.internal.launching.environments.EnvironmentsManager.getAccessRuleParticipants:()[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            astore 1 /* participants */
        start local 1 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
         2: .line 359
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleParticipant:Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            ifnull 12
         3: .line 361
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 2 /* set */
        start local 2 // java.util.LinkedHashSet set
         4: .line 362
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 363
      StackMap locals: org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] java.util.LinkedHashSet int
      StackMap stack:
            aload 2 /* set */
            aload 1 /* participants */
            iload 3 /* i */
            aaload
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
         7: .line 362
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 1 /* participants */
            arraylength
            if_icmplt 6
        end local 3 // int i
         9: .line 366
            aload 2 /* set */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleParticipant:Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            invokevirtual java.util.LinkedHashSet.remove:(Ljava/lang/Object;)Z
            pop
        10: .line 367
            aload 2 /* set */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fRuleParticipant:Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
        11: .line 368
            aload 2 /* set */
            aload 2 /* set */
            invokevirtual java.util.LinkedHashSet.size:()I
            anewarray org.eclipse.jdt.launching.environments.IAccessRuleParticipant
            invokevirtual java.util.LinkedHashSet.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.launching.environments.IAccessRuleParticipant[]
            astore 1 /* participants */
        end local 2 // java.util.LinkedHashSet set
        12: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* participants */
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipants:[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
        end local 1 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
        13: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fParticipants:[Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            2   13     1  participants  [Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            4   12     2           set  Ljava/util/LinkedHashSet<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;>;
            5    9     3             i  I

  private java.util.Map<org.eclipse.jdt.launching.environments.IAccessRuleParticipant, org.eclipse.jdt.core.IAccessRule[][]> collectRulesByParticipant(org.eclipse.jdt.launching.environments.IAccessRuleParticipant[], org.eclipse.jdt.launching.IVMInstall, org.eclipse.jdt.launching.LibraryLocation[], org.eclipse.jdt.core.IJavaProject);
    descriptor: ([Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;Lorg/eclipse/jdt/launching/IVMInstall;[Lorg/eclipse/jdt/launching/LibraryLocation;Lorg/eclipse/jdt/core/IJavaProject;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
        start local 2 // org.eclipse.jdt.launching.IVMInstall vm
        start local 3 // org.eclipse.jdt.launching.LibraryLocation[] libraries
        start local 4 // org.eclipse.jdt.core.IJavaProject project
         0: .line 386
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         1: .line 387
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 5
         3: .line 389
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 5 /* map */
            aload 1 /* participants */
            iload 6 /* i */
            aaload
            aload 1 /* participants */
            iload 6 /* i */
            aaload
            aload 0 /* this */
            aload 2 /* vm */
            aload 3 /* libraries */
            aload 4 /* project */
            invokeinterface org.eclipse.jdt.launching.environments.IAccessRuleParticipant.getAccessRules:(Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;Lorg/eclipse/jdt/launching/IVMInstall;[Lorg/eclipse/jdt/launching/LibraryLocation;Lorg/eclipse/jdt/core/IJavaProject;)[[Lorg/eclipse/jdt/core/IAccessRule;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 387
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 6 /* i */
            aload 1 /* participants */
            arraylength
            if_icmplt 3
        end local 6 // int i
         6: .line 391
            aload 5 /* map */
            areturn
        end local 5 // java.util.Map map
        end local 4 // org.eclipse.jdt.core.IJavaProject project
        end local 3 // org.eclipse.jdt.launching.LibraryLocation[] libraries
        end local 2 // org.eclipse.jdt.launching.IVMInstall vm
        end local 1 // org.eclipse.jdt.launching.environments.IAccessRuleParticipant[] participants
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    7     1  participants  [Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;
            0    7     2            vm  Lorg/eclipse/jdt/launching/IVMInstall;
            0    7     3     libraries  [Lorg/eclipse/jdt/launching/LibraryLocation;
            0    7     4       project  Lorg/eclipse/jdt/core/IJavaProject;
            1    7     5           map  Ljava/util/Map<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;[[Lorg/eclipse/jdt/core/IAccessRule;>;
            2    6     6             i  I
    Signature: ([Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;Lorg/eclipse/jdt/launching/IVMInstall;[Lorg/eclipse/jdt/launching/LibraryLocation;Lorg/eclipse/jdt/core/IJavaProject;)Ljava/util/Map<Lorg/eclipse/jdt/launching/environments/IAccessRuleParticipant;[[Lorg/eclipse/jdt/core/IAccessRule;>;
    MethodParameters:
              Name  Flags
      participants  
      vm            
      libraries     
      project       

  private void addRules(org.eclipse.jdt.core.IAccessRule[][], java.util.ArrayList<java.util.List<org.eclipse.jdt.core.IAccessRule>>);
    descriptor: ([[Lorg/eclipse/jdt/core/IAccessRule;Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.eclipse.jdt.core.IAccessRule[][] accessRules
        start local 2 // java.util.ArrayList collect
         0: .line 402
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 14
         2: .line 403
      StackMap locals: int
      StackMap stack:
            aload 1 /* accessRules */
            iload 3 /* i */
            aaload
            astore 4 /* libRules */
        start local 4 // org.eclipse.jdt.core.IAccessRule[] libRules
         3: .line 404
            aload 2 /* collect */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.util.List
            astore 5 /* list */
        start local 5 // java.util.List list
         4: .line 406
            aload 5 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 8
         5: .line 407
            aload 5 /* list */
            aload 5 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IAccessRule
            astore 6 /* lastRule */
        start local 6 // org.eclipse.jdt.core.IAccessRule lastRule
         6: .line 408
            aload 6 /* lastRule */
            invokeinterface org.eclipse.jdt.core.IAccessRule.getPattern:()Lorg/eclipse/core/runtime/IPath;
            getstatic org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.ALL_PATTERN:Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 409
            goto 13
        end local 6 // org.eclipse.jdt.core.IAccessRule lastRule
         8: .line 412
      StackMap locals: org.eclipse.jdt.core.IAccessRule[] java.util.List
      StackMap stack:
            iconst_0
            istore 6 /* j */
        start local 6 // int j
         9: goto 12
        10: .line 413
      StackMap locals: int
      StackMap stack:
            aload 5 /* list */
            aload 4 /* libRules */
            iload 6 /* j */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 412
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* j */
            aload 4 /* libRules */
            arraylength
            if_icmplt 10
        end local 6 // int j
        end local 5 // java.util.List list
        end local 4 // org.eclipse.jdt.core.IAccessRule[] libRules
        13: .line 402
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 1 /* accessRules */
            arraylength
            if_icmplt 2
        end local 3 // int i
        15: .line 416
            return
        end local 2 // java.util.ArrayList collect
        end local 1 // org.eclipse.jdt.core.IAccessRule[][] accessRules
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0   16     1  accessRules  [[Lorg/eclipse/jdt/core/IAccessRule;
            0   16     2      collect  Ljava/util/ArrayList<Ljava/util/List<Lorg/eclipse/jdt/core/IAccessRule;>;>;
            1   15     3            i  I
            3   13     4     libRules  [Lorg/eclipse/jdt/core/IAccessRule;
            4   13     5         list  Ljava/util/List<Lorg/eclipse/jdt/core/IAccessRule;>;
            6    8     6     lastRule  Lorg/eclipse/jdt/core/IAccessRule;
            9   13     6            j  I
    Signature: ([[Lorg/eclipse/jdt/core/IAccessRule;Ljava/util/ArrayList<Ljava/util/List<Lorg/eclipse/jdt/core/IAccessRule;>;>;)V
    MethodParameters:
             Name  Flags
      accessRules  
      collect      

  public java.util.Properties getProfileProperties();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 423
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fPropertiesInitialized:Z
            ifne 11
         1: .line 424
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fPropertiesInitialized:Z
         2: .line 425
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "profileProperties"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         3: .line 426
            aconst_null
            astore 2 /* bundle */
        start local 2 // org.osgi.framework.Bundle bundle
         4: .line 427
            aload 1 /* path */
            ifnonnull 8
         5: .line 429
            ldc "org.eclipse.osgi"
            invokestatic org.eclipse.core.runtime.Platform.getBundle:(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
            astore 2 /* bundle */
         6: .line 430
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getId:()Ljava/lang/String;
            bipush 47
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".profile"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
         7: .line 431
            goto 9
         8: .line 433
      StackMap locals: java.lang.String org.osgi.framework.Bundle
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getContributor:()Lorg/eclipse/core/runtime/IContributor;
            invokeinterface org.eclipse.core.runtime.IContributor.getName:()Ljava/lang/String;
            invokestatic org.eclipse.core.runtime.Platform.getBundle:(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
            astore 2 /* bundle */
         9: .line 435
      StackMap locals:
      StackMap stack:
            aload 2 /* bundle */
            ifnull 11
            aload 1 /* path */
            ifnull 11
        10: .line 436
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* bundle */
            aload 1 /* path */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getJavaProfileProperties:(Lorg/osgi/framework/Bundle;Ljava/lang/String;)Ljava/util/Properties;
            putfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fProfileProperties:Ljava/util/Properties;
        end local 2 // org.osgi.framework.Bundle bundle
        end local 1 // java.lang.String path
        11: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fProfileProperties:Ljava/util/Properties;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            3   11     1    path  Ljava/lang/String;
            4   11     2  bundle  Lorg/osgi/framework/Bundle;

  private java.util.Properties getJavaProfileProperties(org.osgi.framework.Bundle, java.lang.String);
    descriptor: (Lorg/osgi/framework/Bundle;Ljava/lang/String;)Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.osgi.framework.Bundle bundle
        start local 2 // java.lang.String path
         0: .line 451
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 3 /* profile */
        start local 3 // java.util.Properties profile
         1: .line 452
            aload 1 /* bundle */
            aload 2 /* path */
            invokeinterface org.osgi.framework.Bundle.getEntry:(Ljava/lang/String;)Ljava/net/URL;
            astore 4 /* profileURL */
        start local 4 // java.net.URL profileURL
         2: .line 453
            aload 4 /* profileURL */
            ifnull 17
         3: .line 454
            aconst_null
            astore 5
            aconst_null
            astore 6
         4: aload 4 /* profileURL */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 7 /* is */
        start local 7 // java.io.InputStream is
         5: .line 455
            aload 4 /* profileURL */
            invokestatic org.eclipse.core.runtime.FileLocator.resolve:(Ljava/net/URL;)Ljava/net/URL;
            astore 4 /* profileURL */
         6: .line 456
            aload 7 /* is */
            ifnull 9
         7: .line 457
            aload 3 /* profile */
            aload 7 /* is */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         8: .line 458
            aload 0 /* this */
            aload 3 /* profile */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fixJavaSE9ComplianceSourceTargetLevels:(Ljava/util/Properties;)V
         9: .line 460
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.osgi.framework.Bundle java.lang.String java.util.Properties java.net.URL java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 7 /* is */
            ifnull 30
            aload 7 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 7 /* is */
            ifnull 11
            aload 7 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        11: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 6
            aload 5
            ifnonnull 13
            aload 6
            astore 5
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 5
            aload 6
            if_acmpeq 14
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 5
            athrow
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment org.osgi.framework.Bundle java.lang.String java.util.Properties java.net.URL
      StackMap stack: java.io.IOException
        15: pop
        16: .line 461
            aconst_null
            areturn
        17: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getCompliance:()Ljava/lang/String;
            astore 5 /* compliance */
        start local 5 // java.lang.String compliance
        18: .line 465
            aload 5 /* compliance */
            ifnonnull 20
        19: .line 466
            aconst_null
            areturn
        20: .line 468
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.compliance"
            aload 5 /* compliance */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        21: .line 469
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.source"
            aload 5 /* compliance */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        22: .line 470
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.codegen.targetPlatform"
            aload 5 /* compliance */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        23: .line 471
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.problem.assertIdentifier"
            ldc "error"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        24: .line 472
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.problem.enumIdentifier"
            ldc "error"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        25: .line 473
            aload 3 /* profile */
            ldc "org.osgi.framework.executionenvironment"
            aload 0 /* this */
            new org.osgi.framework.Version
            dup
            aload 5 /* compliance */
            invokespecial org.osgi.framework.Version.<init>:(Ljava/lang/String;)V
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.calculateVMExecutionEnvs:(Lorg/osgi/framework/Version;)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        26: .line 474
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.release"
            ldc "enabled"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        27: .line 475
            aload 5 /* compliance */
            ldc "10"
            invokestatic org.eclipse.jdt.core.JavaCore.compareJavaVersions:(Ljava/lang/String;Ljava/lang/String;)I
            ifle 30
        28: .line 476
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures"
            ldc "disabled"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        29: .line 477
            aload 3 /* profile */
            ldc "org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures"
            ldc "warning"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String compliance
        30: .line 481
      StackMap locals:
      StackMap stack:
            aload 3 /* profile */
            areturn
        end local 4 // java.net.URL profileURL
        end local 3 // java.util.Properties profile
        end local 2 // java.lang.String path
        end local 1 // org.osgi.framework.Bundle bundle
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0   31     1      bundle  Lorg/osgi/framework/Bundle;
            0   31     2        path  Ljava/lang/String;
            1   31     3     profile  Ljava/util/Properties;
            2   31     4  profileURL  Ljava/net/URL;
            5   11     7          is  Ljava/io/InputStream;
           18   30     5  compliance  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5     9      10  any
           4    12      12  any
           3    15      15  Class java.io.IOException
    MethodParameters:
        Name  Flags
      bundle  
      path    

  private java.lang.String calculateVMExecutionEnvs(org.osgi.framework.Version);
    descriptor: (Lorg/osgi/framework/Version;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // org.osgi.framework.Version javaVersion
         0: .line 487
            new java.lang.StringBuilder
            dup
            ldc "OSGi/Minimum-1.0, OSGi/Minimum-1.1, OSGi/Minimum-1.2, JavaSE/compact1-1.8, JavaSE/compact2-1.8, JavaSE/compact3-1.8, JRE-1.1, J2SE-1.2, J2SE-1.3, J2SE-1.4, J2SE-1.5, JavaSE-1.6, JavaSE-1.7, JavaSE-1.8"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         1: .line 488
            new org.osgi.framework.Version
            dup
            bipush 9
            iconst_0
            iconst_0
            invokespecial org.osgi.framework.Version.<init>:(III)V
            astore 3 /* v */
        start local 3 // org.osgi.framework.Version v
         2: .line 489
            goto 10
         3: .line 490
      StackMap locals: java.lang.StringBuilder org.osgi.framework.Version
      StackMap stack:
            aload 2 /* result */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "JavaSE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMajor:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         4: .line 491
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMinor:()I
            ifle 6
         5: .line 492
            aload 2 /* result */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMinor:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         6: .line 494
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMajor:()I
            aload 1 /* javaVersion */
            invokevirtual org.osgi.framework.Version.getMajor:()I
            if_icmpne 9
         7: .line 495
            new org.osgi.framework.Version
            dup
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMajor:()I
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMinor:()I
            iconst_1
            iadd
            iconst_0
            invokespecial org.osgi.framework.Version.<init>:(III)V
            astore 3 /* v */
         8: .line 496
            goto 10
         9: .line 497
      StackMap locals:
      StackMap stack:
            new org.osgi.framework.Version
            dup
            aload 3 /* v */
            invokevirtual org.osgi.framework.Version.getMajor:()I
            iconst_1
            iadd
            iconst_0
            iconst_0
            invokespecial org.osgi.framework.Version.<init>:(III)V
            astore 3 /* v */
        10: .line 489
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            aload 1 /* javaVersion */
            invokevirtual org.osgi.framework.Version.compareTo:(Lorg/osgi/framework/Version;)I
            ifle 3
        11: .line 500
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // org.osgi.framework.Version v
        end local 2 // java.lang.StringBuilder result
        end local 1 // org.osgi.framework.Version javaVersion
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0   12     1  javaVersion  Lorg/osgi/framework/Version;
            1   12     2       result  Ljava/lang/StringBuilder;
            2   12     3            v  Lorg/osgi/framework/Version;
    MethodParameters:
             Name  Flags
      javaVersion  

  private void fixJavaSE9ComplianceSourceTargetLevels(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
        start local 1 // java.util.Properties profile
         0: .line 510
            ldc "JavaSE-9"
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 511
            aload 1 /* profile */
            ldc "org.eclipse.jdt.core.compiler.compliance"
            ldc "9"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 512
            aload 1 /* profile */
            ldc "org.eclipse.jdt.core.compiler.source"
            ldc "9"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 513
            aload 1 /* profile */
            ldc "org.eclipse.jdt.core.compiler.codegen.targetPlatform"
            ldc "9"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 514
            aload 1 /* profile */
            ldc "org.eclipse.jdt.core.compiler.release"
            ldc "enabled"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 516
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Properties profile
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            0    6     1  profile  Ljava/util/Properties;
    MethodParameters:
         Name  Flags
      profile  

  public org.eclipse.jdt.launching.environments.IExecutionEnvironment[] getSubEnvironments();
    descriptor: ()[Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 523
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getProfileProperties:()Ljava/util/Properties;
            astore 1 /* properties */
        start local 1 // java.util.Properties properties
         1: .line 524
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 2 /* subenv */
        start local 2 // java.util.Set subenv
         2: .line 525
            aload 1 /* properties */
            ifnull 13
         3: .line 527
            aload 1 /* properties */
            ldc "org.osgi.framework.executionenvironment"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* subsets */
        start local 3 // java.lang.String subsets
         4: .line 528
            aload 3 /* subsets */
            ifnull 13
         5: .line 529
            aload 3 /* subsets */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 4 /* ids */
        start local 4 // java.lang.String[] ids
         6: .line 530
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 12
         8: .line 531
      StackMap locals: org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment java.util.Properties java.util.Set java.lang.String java.lang.String[] int
      StackMap stack:
            invokestatic org.eclipse.jdt.launching.JavaRuntime.getExecutionEnvironmentsManager:()Lorg/eclipse/jdt/launching/environments/IExecutionEnvironmentsManager;
            aload 4 /* ids */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokeinterface org.eclipse.jdt.launching.environments.IExecutionEnvironmentsManager.getEnvironment:(Ljava/lang/String;)Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;
            astore 6 /* sub */
        start local 6 // org.eclipse.jdt.launching.environments.IExecutionEnvironment sub
         9: .line 532
            aload 6 /* sub */
            ifnull 11
            aload 6 /* sub */
            invokeinterface org.eclipse.jdt.launching.environments.IExecutionEnvironment.getId:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 533
            aload 2 /* subenv */
            aload 6 /* sub */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.jdt.launching.environments.IExecutionEnvironment sub
        11: .line 530
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* ids */
            arraylength
            if_icmplt 8
        end local 5 // int i
        end local 4 // java.lang.String[] ids
        end local 3 // java.lang.String subsets
        13: .line 538
      StackMap locals:
      StackMap stack:
            aload 2 /* subenv */
            aload 2 /* subenv */
            invokeinterface java.util.Set.size:()I
            anewarray org.eclipse.jdt.launching.environments.IExecutionEnvironment
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.launching.environments.IExecutionEnvironment[]
            areturn
        end local 2 // java.util.Set subenv
        end local 1 // java.util.Properties properties
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            1   14     1  properties  Ljava/util/Properties;
            2   14     2      subenv  Ljava/util/Set<Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;>;
            4   13     3     subsets  Ljava/lang/String;
            6   13     4         ids  [Ljava/lang/String;
            7   13     5           i  I
            9   11     6         sub  Lorg/eclipse/jdt/launching/environments/IExecutionEnvironment;

  public java.util.Map<java.lang.String, java.lang.String> getComplianceOptions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 546
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.getProfileProperties:()Ljava/util/Properties;
            astore 1 /* properties */
        start local 1 // java.util.Properties properties
         1: .line 547
            aload 1 /* properties */
            ifnull 11
         2: .line 548
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* map */
        start local 2 // java.util.Map map
         3: .line 549
            aload 1 /* properties */
            invokevirtual java.util.Properties.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* iterator */
        start local 3 // java.util.Iterator iterator
         4: .line 550
            goto 8
         5: .line 551
      StackMap locals: java.util.Properties java.util.Map java.util.Iterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         6: .line 552
            aload 4 /* key */
            ldc "org.eclipse.jdt.core.compiler"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 553
            aload 2 /* map */
            aload 4 /* key */
            aload 1 /* properties */
            aload 4 /* key */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String key
         8: .line 550
      StackMap locals:
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 556
            aload 2 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 11
        10: .line 557
            aload 2 /* map */
            areturn
        end local 3 // java.util.Iterator iterator
        end local 2 // java.util.Map map
        11: .line 560
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.util.Properties properties
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
            1   12     1  properties  Ljava/util/Properties;
            3   11     2         map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4   11     3    iterator  Ljava/util/Iterator<*>;
            6    8     4         key  Ljava/lang/String;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private java.lang.String getCompliance();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 564
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "compliance"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
         0: .line 569
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment.fElement:Lorg/eclipse/core/runtime/IConfigurationElement;
            ldc "id"
            invokeinterface org.eclipse.core.runtime.IConfigurationElement.getAttribute:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/launching/environments/ExecutionEnvironment;
}
SourceFile: "ExecutionEnvironment.java"
NestMembers:
  org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment$1
InnerClasses:
  org.eclipse.jdt.internal.launching.environments.ExecutionEnvironment$1