public class org.eclipse.debug.core.Launch extends org.eclipse.core.runtime.PlatformObject implements org.eclipse.debug.core.ILaunch, org.eclipse.debug.core.model.IDisconnect, org.eclipse.debug.core.ILaunchListener, org.eclipse.debug.core.ILaunchConfigurationListener, org.eclipse.debug.core.IDebugEventSetListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.debug.core.Launch
  super_class: org.eclipse.core.runtime.PlatformObject
{
  private final java.util.concurrent.locks.ReadWriteLock lock;
    descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.Lock readLock;
    descriptor: Ljava/util/concurrent/locks/Lock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.Lock writeLock;
    descriptor: Ljava/util/concurrent/locks/Lock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.List<org.eclipse.debug.core.model.IDebugTarget> fTargets;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/eclipse/debug/core/model/IDebugTarget;>;

  private org.eclipse.debug.core.ILaunchConfiguration fConfiguration;
    descriptor: Lorg/eclipse/debug/core/ILaunchConfiguration;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<org.eclipse.debug.core.model.IProcess> fProcesses;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/eclipse/debug/core/model/IProcess;>;

  private org.eclipse.debug.core.model.ISourceLocator fLocator;
    descriptor: Lorg/eclipse/debug/core/model/ISourceLocator;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String fMode;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, java.lang.String> fAttributes;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;

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

  public void <init>(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.model.ISourceLocator);
    descriptor: (Lorg/eclipse/debug/core/ILaunchConfiguration;Ljava/lang/String;Lorg/eclipse/debug/core/model/ISourceLocator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunchConfiguration launchConfiguration
        start local 2 // java.lang.String mode
        start local 3 // org.eclipse.debug.core.model.ISourceLocator locator
         0: .line 109
            aload 0 /* this */
            invokespecial org.eclipse.core.runtime.PlatformObject.<init>:()V
         1: .line 52
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantReadWriteLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
            putfield org.eclipse.debug.core.Launch.lock:Ljava/util/concurrent/locks/ReadWriteLock;
         2: .line 54
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.lock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            putfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
         3: .line 56
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.lock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            putfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
         4: .line 64
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.debug.core.Launch.fTargets:Ljava/util/List;
         5: .line 69
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.debug.core.Launch.fConfiguration:Lorg/eclipse/debug/core/ILaunchConfiguration;
         6: .line 75
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.debug.core.Launch.fProcesses:Ljava/util/List;
         7: .line 81
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.debug.core.Launch.fLocator:Lorg/eclipse/debug/core/model/ISourceLocator;
         8: .line 98
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.debug.core.Launch.fSuppressChange:Z
         9: .line 110
            aload 0 /* this */
            aload 1 /* launchConfiguration */
            putfield org.eclipse.debug.core.Launch.fConfiguration:Lorg/eclipse/debug/core/ILaunchConfiguration;
        10: .line 111
            aload 0 /* this */
            aload 3 /* locator */
            invokevirtual org.eclipse.debug.core.Launch.setSourceLocator:(Lorg/eclipse/debug/core/model/ISourceLocator;)V
        11: .line 112
            aload 0 /* this */
            aload 2 /* mode */
            putfield org.eclipse.debug.core.Launch.fMode:Ljava/lang/String;
        12: .line 113
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.debug.core.Launch.fSuppressChange:Z
        13: .line 114
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 0 /* this */
            invokeinterface org.eclipse.debug.core.ILaunchManager.addLaunchListener:(Lorg/eclipse/debug/core/ILaunchListener;)V
        14: .line 115
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 0 /* this */
            invokeinterface org.eclipse.debug.core.ILaunchManager.addLaunchConfigurationListener:(Lorg/eclipse/debug/core/ILaunchConfigurationListener;)V
        15: .line 116
            return
        end local 3 // org.eclipse.debug.core.model.ISourceLocator locator
        end local 2 // java.lang.String mode
        end local 1 // org.eclipse.debug.core.ILaunchConfiguration launchConfiguration
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0                 this  Lorg/eclipse/debug/core/Launch;
            0   16     1  launchConfiguration  Lorg/eclipse/debug/core/ILaunchConfiguration;
            0   16     2                 mode  Ljava/lang/String;
            0   16     3              locator  Lorg/eclipse/debug/core/model/ISourceLocator;
    MethodParameters:
                     Name  Flags
      launchConfiguration  
      mode                 
      locator              

  private void addEventListener();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 122
            invokestatic org.eclipse.debug.core.DebugPlugin.getDefault:()Lorg/eclipse/debug/core/DebugPlugin;
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.DebugPlugin.addDebugEventListener:(Lorg/eclipse/debug/core/IDebugEventSetListener;)V
         1: .line 123
            return
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/debug/core/Launch;

  private void removeEventListener();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 129
            invokestatic org.eclipse.debug.core.DebugPlugin.getDefault:()Lorg/eclipse/debug/core/DebugPlugin;
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.DebugPlugin.removeDebugEventListener:(Lorg/eclipse/debug/core/IDebugEventSetListener;)V
         1: .line 130
            return
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/debug/core/Launch;

  public boolean canTerminate();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 137
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 139
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess
            astore 1 /* process */
        start local 1 // org.eclipse.debug.core.model.IProcess process
         3: .line 140
            aload 1 /* process */
            invokeinterface org.eclipse.debug.core.model.IProcess.canTerminate:()Z
            ifeq 6
         4: .line 150
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         5: .line 141
            iconst_1
            ireturn
        end local 1 // org.eclipse.debug.core.model.IProcess process
         6: .line 139
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 144
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals:
      StackMap stack:
         8: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 1 /* target */
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
         9: .line 145
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canTerminate:()Z
            ifne 10
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canDisconnect:()Z
            ifeq 12
        10: .line 150
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IDebugTarget java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 146
            iconst_1
            ireturn
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        12: .line 144
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        13: .line 149
            goto 17
      StackMap locals: org.eclipse.debug.core.Launch
      StackMap stack: java.lang.Throwable
        14: astore 3
        15: .line 150
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        16: .line 151
            aload 3
            athrow
        17: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        18: .line 152
            iconst_0
            ireturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/eclipse/debug/core/Launch;
            3    6     1  process  Lorg/eclipse/debug/core/model/IProcess;
            9   12     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
      Exception table:
        from    to  target  type
           1     4      14  any
           6    10      14  any
          12    14      14  any

  public java.lang.Object[] getChildren();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 160
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 163
            new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* children */
        start local 1 // java.util.ArrayList children
         2: .line 164
            aload 1 /* children */
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 165
            goto 7
        end local 1 // java.util.ArrayList children
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 166
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 167
            aload 2
            athrow
        start local 1 // java.util.ArrayList children
         7: .line 166
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 168
            aload 1 /* children */
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            areturn
        end local 1 // java.util.ArrayList children
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/eclipse/debug/core/Launch;
            2    4     1  children  Ljava/util/ArrayList<Ljava/lang/Object;>;
            7    9     1  children  Ljava/util/ArrayList<Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           1     4       4  any

  public org.eclipse.debug.core.model.IDebugTarget getDebugTarget();
    descriptor: ()Lorg/eclipse/debug/core/model/IDebugTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 176
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 178
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 8
         2: .line 179
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 2
         3: .line 182
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         4: .line 179
            aload 2
            areturn
         5: .line 181
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 182
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         7: .line 183
            aload 1
            athrow
         8: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 184
            aconst_null
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/eclipse/debug/core/Launch;
      Exception table:
        from    to  target  type
           1     3       5  any

  public org.eclipse.debug.core.model.IProcess[] getProcesses();
    descriptor: ()[Lorg/eclipse/debug/core/model/IProcess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 192
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 194
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.debug.core.model.IProcess
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess[]
            astore 2
         2: .line 196
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         3: .line 194
            aload 2
            areturn
         4: .line 195
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 196
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 197
            aload 1
            athrow
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/debug/core/Launch;
      Exception table:
        from    to  target  type
           1     2       4  any

  protected java.util.List<org.eclipse.debug.core.model.IProcess> getProcesses0();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 207
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fProcesses:Ljava/util/List;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;
    Signature: ()Ljava/util/List<Lorg/eclipse/debug/core/model/IProcess;>;

  public org.eclipse.debug.core.model.ISourceLocator getSourceLocator();
    descriptor: ()Lorg/eclipse/debug/core/model/ISourceLocator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 215
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fLocator:Lorg/eclipse/debug/core/model/ISourceLocator;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;

  public void setSourceLocator(org.eclipse.debug.core.model.ISourceLocator);
    descriptor: (Lorg/eclipse/debug/core/model/ISourceLocator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.ISourceLocator sourceLocator
         0: .line 223
            aload 0 /* this */
            aload 1 /* sourceLocator */
            putfield org.eclipse.debug.core.Launch.fLocator:Lorg/eclipse/debug/core/model/ISourceLocator;
         1: .line 224
            return
        end local 1 // org.eclipse.debug.core.model.ISourceLocator sourceLocator
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/eclipse/debug/core/Launch;
            0    2     1  sourceLocator  Lorg/eclipse/debug/core/model/ISourceLocator;
    MethodParameters:
               Name  Flags
      sourceLocator  

  public boolean isTerminated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 231
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 233
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         2: .line 247
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         3: .line 234
            iconst_0
            ireturn
         4: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
         5: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess
            astore 1 /* process */
        start local 1 // org.eclipse.debug.core.model.IProcess process
         6: .line 237
            aload 1 /* process */
            invokeinterface org.eclipse.debug.core.model.IProcess.isTerminated:()Z
            ifne 9
         7: .line 247
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 238
            iconst_0
            ireturn
        end local 1 // org.eclipse.debug.core.model.IProcess process
         9: .line 236
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 241
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 15
      StackMap locals:
      StackMap stack:
        11: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 1 /* target */
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
        12: .line 242
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.isTerminated:()Z
            ifne 15
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.isDisconnected:()Z
            ifne 15
        13: .line 247
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        14: .line 243
            iconst_0
            ireturn
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        15: .line 241
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        16: .line 246
            goto 20
      StackMap locals: org.eclipse.debug.core.Launch
      StackMap stack: java.lang.Throwable
        17: astore 3
        18: .line 247
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 248
            aload 3
            athrow
        20: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        21: .line 249
            iconst_1
            ireturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lorg/eclipse/debug/core/Launch;
            6    9     1  process  Lorg/eclipse/debug/core/model/IProcess;
           12   15     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
      Exception table:
        from    to  target  type
           1     2      17  any
           4     7      17  any
           9    13      17  any
          15    17      17  any

  public void terminate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 258
            new org.eclipse.core.runtime.MultiStatus
            dup
            invokestatic org.eclipse.debug.core.DebugPlugin.getUniqueIdentifier:()Ljava/lang/String;
            sipush 5012
            getstatic org.eclipse.debug.internal.core.DebugCoreMessages.Launch_terminate_failed:Ljava/lang/String;
            aconst_null
            invokespecial org.eclipse.core.runtime.MultiStatus.<init>:(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
         1: .line 257
            astore 1 /* status */
        start local 1 // org.eclipse.core.runtime.MultiStatus status
         2: .line 261
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets:()[Lorg/eclipse/debug/core/model/IDebugTarget;
            astore 2 /* targets */
        start local 2 // org.eclipse.debug.core.model.IDebugTarget[] targets
         3: .line 262
            aload 2 /* targets */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 18
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] top int int org.eclipse.debug.core.model.IDebugTarget[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* target */
        start local 3 // org.eclipse.debug.core.model.IDebugTarget target
         5: .line 263
            aload 3 /* target */
            ifnull 17
         6: .line 264
            aload 3 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canTerminate:()Z
            ifeq 12
         7: .line 266
            aload 3 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.terminate:()V
         8: .line 267
            goto 17
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] org.eclipse.debug.core.model.IDebugTarget int int org.eclipse.debug.core.model.IDebugTarget[]
      StackMap stack: org.eclipse.debug.core.DebugException
         9: astore 7 /* e */
        start local 7 // org.eclipse.debug.core.DebugException e
        10: .line 268
            aload 1 /* status */
            aload 7 /* e */
            invokevirtual org.eclipse.debug.core.DebugException.getStatus:()Lorg/eclipse/core/runtime/IStatus;
            invokevirtual org.eclipse.core.runtime.MultiStatus.merge:(Lorg/eclipse/core/runtime/IStatus;)V
        end local 7 // org.eclipse.debug.core.DebugException e
        11: .line 270
            goto 17
        12: .line 271
      StackMap locals:
      StackMap stack:
            aload 3 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canDisconnect:()Z
            ifeq 17
        13: .line 273
            aload 3 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.disconnect:()V
        14: .line 274
            goto 17
      StackMap locals:
      StackMap stack: org.eclipse.debug.core.DebugException
        15: astore 7 /* de */
        start local 7 // org.eclipse.debug.core.DebugException de
        16: .line 275
            aload 1 /* status */
            aload 7 /* de */
            invokevirtual org.eclipse.debug.core.DebugException.getStatus:()Lorg/eclipse/core/runtime/IStatus;
            invokevirtual org.eclipse.core.runtime.MultiStatus.merge:(Lorg/eclipse/core/runtime/IStatus;)V
        end local 7 // org.eclipse.debug.core.DebugException de
        end local 3 // org.eclipse.debug.core.model.IDebugTarget target
        17: .line 262
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] top int int org.eclipse.debug.core.model.IDebugTarget[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        18: iload 4
            iload 5
            if_icmplt 4
        19: .line 283
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses:()[Lorg/eclipse/debug/core/model/IProcess;
            astore 3 /* processes */
        start local 3 // org.eclipse.debug.core.model.IProcess[] processes
        20: .line 284
            aload 3 /* processes */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 28
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] org.eclipse.debug.core.model.IProcess[] top int int org.eclipse.debug.core.model.IProcess[]
      StackMap stack:
        21: aload 7
            iload 5
            aaload
            astore 4 /* process */
        start local 4 // org.eclipse.debug.core.model.IProcess process
        22: .line 285
            aload 4 /* process */
            invokeinterface org.eclipse.debug.core.model.IProcess.canTerminate:()Z
            ifeq 27
        23: .line 287
            aload 4 /* process */
            invokeinterface org.eclipse.debug.core.model.IProcess.terminate:()V
        24: .line 288
            goto 27
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] org.eclipse.debug.core.model.IProcess[] org.eclipse.debug.core.model.IProcess int int org.eclipse.debug.core.model.IProcess[]
      StackMap stack: org.eclipse.debug.core.DebugException
        25: astore 8 /* e */
        start local 8 // org.eclipse.debug.core.DebugException e
        26: .line 289
            aload 1 /* status */
            aload 8 /* e */
            invokevirtual org.eclipse.debug.core.DebugException.getStatus:()Lorg/eclipse/core/runtime/IStatus;
            invokevirtual org.eclipse.core.runtime.MultiStatus.merge:(Lorg/eclipse/core/runtime/IStatus;)V
        end local 8 // org.eclipse.debug.core.DebugException e
        end local 4 // org.eclipse.debug.core.model.IProcess process
        27: .line 284
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] org.eclipse.debug.core.model.IProcess[] top int int org.eclipse.debug.core.model.IProcess[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        28: iload 5
            iload 6
            if_icmplt 21
        29: .line 293
            aload 1 /* status */
            invokevirtual org.eclipse.core.runtime.MultiStatus.isOK:()Z
            ifeq 31
        30: .line 294
            return
        31: .line 296
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.core.runtime.MultiStatus org.eclipse.debug.core.model.IDebugTarget[] org.eclipse.debug.core.model.IProcess[]
      StackMap stack:
            aload 1 /* status */
            invokevirtual org.eclipse.core.runtime.MultiStatus.getChildren:()[Lorg/eclipse/core/runtime/IStatus;
            astore 4 /* children */
        start local 4 // org.eclipse.core.runtime.IStatus[] children
        32: .line 297
            aload 4 /* children */
            arraylength
            iconst_1
            if_icmpne 34
        33: .line 298
            new org.eclipse.debug.core.DebugException
            dup
            aload 4 /* children */
            iconst_0
            aaload
            invokespecial org.eclipse.debug.core.DebugException.<init>:(Lorg/eclipse/core/runtime/IStatus;)V
            athrow
        34: .line 300
      StackMap locals: org.eclipse.core.runtime.IStatus[]
      StackMap stack:
            new org.eclipse.debug.core.DebugException
            dup
            aload 1 /* status */
            invokespecial org.eclipse.debug.core.DebugException.<init>:(Lorg/eclipse/core/runtime/IStatus;)V
            athrow
        end local 4 // org.eclipse.core.runtime.IStatus[] children
        end local 3 // org.eclipse.debug.core.model.IProcess[] processes
        end local 2 // org.eclipse.debug.core.model.IDebugTarget[] targets
        end local 1 // org.eclipse.core.runtime.MultiStatus status
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0       this  Lorg/eclipse/debug/core/Launch;
            2   35     1     status  Lorg/eclipse/core/runtime/MultiStatus;
            3   35     2    targets  [Lorg/eclipse/debug/core/model/IDebugTarget;
            5   17     3     target  Lorg/eclipse/debug/core/model/IDebugTarget;
           10   11     7          e  Lorg/eclipse/debug/core/DebugException;
           16   17     7         de  Lorg/eclipse/debug/core/DebugException;
           20   35     3  processes  [Lorg/eclipse/debug/core/model/IProcess;
           22   27     4    process  Lorg/eclipse/debug/core/model/IProcess;
           26   27     8          e  Lorg/eclipse/debug/core/DebugException;
           32   35     4   children  [Lorg/eclipse/core/runtime/IStatus;
      Exception table:
        from    to  target  type
           7     8       9  Class org.eclipse.debug.core.DebugException
          13    14      15  Class org.eclipse.debug.core.DebugException
          23    24      25  Class org.eclipse.debug.core.DebugException
    Exceptions:
      throws org.eclipse.debug.core.DebugException

  public java.lang.String getLaunchMode();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 308
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fMode:Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;

  public org.eclipse.debug.core.ILaunchConfiguration getLaunchConfiguration();
    descriptor: ()Lorg/eclipse/debug/core/ILaunchConfiguration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 316
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fConfiguration:Lorg/eclipse/debug/core/ILaunchConfiguration;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;

  public void setAttribute(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 324
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fAttributes:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 325
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.eclipse.debug.core.Launch.fAttributes:Ljava/util/HashMap;
         2: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fAttributes:Ljava/util/HashMap;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 328
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/eclipse/debug/core/Launch;
            0    4     1    key  Ljava/lang/String;
            0    4     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    
      value  

  public java.lang.String getAttribute(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // java.lang.String key
         0: .line 335
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fAttributes:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 336
            aconst_null
            areturn
         2: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fAttributes:Ljava/util/HashMap;
            aload 1 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.String key
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/debug/core/Launch;
            0    3     1   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  public org.eclipse.debug.core.model.IDebugTarget[] getDebugTargets();
    descriptor: ()[Lorg/eclipse/debug/core/model/IDebugTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 346
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 348
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fTargets:Ljava/util/List;
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fTargets:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.debug.core.model.IDebugTarget
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget[]
            astore 2
         2: .line 350
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         3: .line 348
            aload 2
            areturn
         4: .line 349
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 350
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 351
            aload 1
            athrow
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/debug/core/Launch;
      Exception table:
        from    to  target  type
           1     2       4  any

  protected java.util.List<org.eclipse.debug.core.model.IDebugTarget> getDebugTargets0();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 361
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fTargets:Ljava/util/List;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;
    Signature: ()Ljava/util/List<Lorg/eclipse/debug/core/model/IDebugTarget;>;

  public void addDebugTarget(org.eclipse.debug.core.model.IDebugTarget);
    descriptor: (Lorg/eclipse/debug/core/model/IDebugTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
         0: .line 369
            aload 1 /* target */
            ifnull 15
         1: .line 370
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 371
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         3: .line 373
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            aload 1 /* target */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 12
         4: .line 374
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.addEventListener:()V
         5: .line 375
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            aload 1 /* target */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            istore 2 /* changed */
         6: .line 377
            goto 12
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IDebugTarget int
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 378
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 379
            iload 2 /* changed */
            ifeq 11
        10: .line 380
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        11: .line 382
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        12: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        13: .line 379
            iload 2 /* changed */
            ifeq 15
        14: .line 380
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        end local 2 // boolean changed
        15: .line 384
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/eclipse/debug/core/Launch;
            0   16     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
            3   15     2  changed  Z
      Exception table:
        from    to  target  type
           3     7       7  any
    MethodParameters:
        Name  Flags
      target  

  public void removeDebugTarget(org.eclipse.debug.core.model.IDebugTarget);
    descriptor: (Lorg/eclipse/debug/core/model/IDebugTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
         0: .line 391
            aload 1 /* target */
            ifnull 13
         1: .line 392
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 393
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         3: .line 395
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            aload 1 /* target */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            istore 2 /* changed */
         4: .line 396
            goto 10
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IDebugTarget int
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 397
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         7: .line 398
            iload 2 /* changed */
            ifeq 9
         8: .line 399
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
         9: .line 401
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        10: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 398
            iload 2 /* changed */
            ifeq 13
        12: .line 399
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        end local 2 // boolean changed
        13: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/eclipse/debug/core/Launch;
            0   14     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
            3   13     2  changed  Z
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
        Name  Flags
      target  

  public void addProcess(org.eclipse.debug.core.model.IProcess);
    descriptor: (Lorg/eclipse/debug/core/model/IProcess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.IProcess process
         0: .line 410
            aload 1 /* process */
            ifnull 15
         1: .line 411
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 412
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         3: .line 414
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            aload 1 /* process */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 12
         4: .line 415
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.addEventListener:()V
         5: .line 416
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            aload 1 /* process */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            istore 2 /* changed */
         6: .line 418
            goto 12
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IProcess int
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 419
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 420
            iload 2 /* changed */
            ifeq 11
        10: .line 421
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        11: .line 423
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        12: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        13: .line 420
            iload 2 /* changed */
            ifeq 15
        14: .line 421
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        end local 2 // boolean changed
        15: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.model.IProcess process
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/eclipse/debug/core/Launch;
            0   16     1  process  Lorg/eclipse/debug/core/model/IProcess;
            3   15     2  changed  Z
      Exception table:
        from    to  target  type
           3     7       7  any
    MethodParameters:
         Name  Flags
      process  

  public void removeProcess(org.eclipse.debug.core.model.IProcess);
    descriptor: (Lorg/eclipse/debug/core/model/IProcess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.IProcess process
         0: .line 432
            aload 1 /* process */
            ifnull 13
         1: .line 433
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 434
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         3: .line 436
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            aload 1 /* process */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            istore 2 /* changed */
         4: .line 437
            goto 10
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IProcess int
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 438
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         7: .line 439
            iload 2 /* changed */
            ifeq 9
         8: .line 440
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
         9: .line 442
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        10: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.writeLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 439
            iload 2 /* changed */
            ifeq 13
        12: .line 440
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        end local 2 // boolean changed
        13: .line 444
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.model.IProcess process
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/eclipse/debug/core/Launch;
            0   14     1  process  Lorg/eclipse/debug/core/model/IProcess;
            3   13     2  changed  Z
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
         Name  Flags
      process  

  protected void addProcesses(org.eclipse.debug.core.model.IProcess[]);
    descriptor: ([Lorg/eclipse/debug/core/model/IProcess;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.model.IProcess[] processes
         0: .line 452
            aload 1 /* processes */
            ifnull 7
         1: .line 453
            aload 1 /* processes */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IProcess[] top int int org.eclipse.debug.core.model.IProcess[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* process */
        start local 2 // org.eclipse.debug.core.model.IProcess process
         3: .line 454
            aload 0 /* this */
            aload 2 /* process */
            invokevirtual org.eclipse.debug.core.Launch.addProcess:(Lorg/eclipse/debug/core/model/IProcess;)V
         4: .line 455
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
        end local 2 // org.eclipse.debug.core.model.IProcess process
         5: .line 453
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 458
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.model.IProcess[]
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.model.IProcess[] processes
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/eclipse/debug/core/Launch;
            0    8     1  processes  [Lorg/eclipse/debug/core/model/IProcess;
            3    5     2    process  Lorg/eclipse/debug/core/model/IProcess;
    MethodParameters:
           Name  Flags
      processes  

  protected void fireChanged();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 466
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fSuppressChange:Z
            ifne 3
         1: .line 467
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            checkcast org.eclipse.debug.internal.core.LaunchManager
            aload 0 /* this */
            iconst_2
            invokevirtual org.eclipse.debug.internal.core.LaunchManager.fireUpdate:(Lorg/eclipse/debug/core/ILaunch;I)V
         2: .line 468
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            checkcast org.eclipse.debug.internal.core.LaunchManager
            iconst_1
            anewarray org.eclipse.debug.core.ILaunch
            dup
            iconst_0
            aload 0 /* this */
            aastore
            iconst_2
            invokevirtual org.eclipse.debug.internal.core.LaunchManager.fireUpdate:([Lorg/eclipse/debug/core/ILaunch;I)V
         3: .line 470
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/debug/core/Launch;

  protected void fireTerminate();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 478
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.fSuppressChange:Z
            ifne 3
         1: .line 479
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            checkcast org.eclipse.debug.internal.core.LaunchManager
            aload 0 /* this */
            iconst_3
            invokevirtual org.eclipse.debug.internal.core.LaunchManager.fireUpdate:(Lorg/eclipse/debug/core/ILaunch;I)V
         2: .line 480
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            checkcast org.eclipse.debug.internal.core.LaunchManager
            iconst_1
            anewarray org.eclipse.debug.core.ILaunch
            dup
            iconst_0
            aload 0 /* this */
            aastore
            iconst_3
            invokevirtual org.eclipse.debug.internal.core.LaunchManager.fireUpdate:([Lorg/eclipse/debug/core/ILaunch;I)V
         3: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.removeEventListener:()V
         4: .line 483
            return
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/debug/core/Launch;

  public boolean hasChildren();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 490
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifgt 1
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifgt 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/debug/core/Launch;

  public boolean canDisconnect();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 501
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 503
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess
            astore 1 /* process */
        start local 1 // org.eclipse.debug.core.model.IProcess process
         3: .line 504
            aload 1 /* process */
            instanceof org.eclipse.debug.core.model.IDisconnect
            ifeq 7
         4: .line 505
            aload 1 /* process */
            checkcast org.eclipse.debug.core.model.IDisconnect
            invokeinterface org.eclipse.debug.core.model.IDisconnect.canDisconnect:()Z
            ifeq 7
         5: .line 516
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 506
            iconst_1
            ireturn
        end local 1 // org.eclipse.debug.core.model.IProcess process
         7: .line 503
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 510
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 13
      StackMap locals:
      StackMap stack:
         9: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 1 /* target */
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
        10: .line 511
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canDisconnect:()Z
            ifeq 13
        11: .line 516
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        12: .line 512
            iconst_1
            ireturn
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        13: .line 510
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        14: .line 515
            goto 18
      StackMap locals: org.eclipse.debug.core.Launch
      StackMap stack: java.lang.Throwable
        15: astore 3
        16: .line 516
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        17: .line 517
            aload 3
            athrow
        18: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 518
            iconst_0
            ireturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/eclipse/debug/core/Launch;
            3    7     1  process  Lorg/eclipse/debug/core/model/IProcess;
           10   13     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
      Exception table:
        from    to  target  type
           1     5      15  any
           7    11      15  any
          13    15      15  any

  public void disconnect();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=5, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 526
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 528
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess
            astore 1 /* process */
        start local 1 // org.eclipse.debug.core.model.IProcess process
         3: .line 529
            aload 1 /* process */
            instanceof org.eclipse.debug.core.model.IDisconnect
            ifeq 7
         4: .line 530
            aload 1 /* process */
            checkcast org.eclipse.debug.core.model.IDisconnect
            astore 3 /* dis */
        start local 3 // org.eclipse.debug.core.model.IDisconnect dis
         5: .line 531
            aload 3 /* dis */
            invokeinterface org.eclipse.debug.core.model.IDisconnect.canDisconnect:()Z
            ifeq 7
         6: .line 532
            aload 3 /* dis */
            invokeinterface org.eclipse.debug.core.model.IDisconnect.disconnect:()V
        end local 3 // org.eclipse.debug.core.model.IDisconnect dis
        end local 1 // org.eclipse.debug.core.model.IProcess process
         7: .line 528
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 536
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals:
      StackMap stack:
         9: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 1 /* target */
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
        10: .line 537
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.canDisconnect:()Z
            ifeq 12
        11: .line 538
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.disconnect:()V
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        12: .line 536
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 541
            goto 17
      StackMap locals: org.eclipse.debug.core.Launch
      StackMap stack: java.lang.Throwable
        14: astore 4
        15: .line 542
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        16: .line 543
            aload 4
            athrow
        17: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        18: .line 544
            return
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/eclipse/debug/core/Launch;
            3    7     1  process  Lorg/eclipse/debug/core/model/IProcess;
            5    7     3      dis  Lorg/eclipse/debug/core/model/IDisconnect;
           10   12     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
      Exception table:
        from    to  target  type
           1    14      14  any
    Exceptions:
      throws org.eclipse.debug.core.DebugException

  public boolean isDisconnected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 555
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 557
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getProcesses0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.eclipse.debug.core.Launch top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IProcess
            astore 1 /* process */
        start local 1 // org.eclipse.debug.core.model.IProcess process
         3: .line 558
            aload 1 /* process */
            instanceof org.eclipse.debug.core.model.IDisconnect
            ifeq 7
         4: .line 559
            aload 1 /* process */
            checkcast org.eclipse.debug.core.model.IDisconnect
            invokeinterface org.eclipse.debug.core.model.IDisconnect.isDisconnected:()Z
            ifne 7
         5: .line 570
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 560
            iconst_0
            ireturn
        end local 1 // org.eclipse.debug.core.model.IProcess process
         7: .line 557
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 564
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getDebugTargets0:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 13
      StackMap locals:
      StackMap stack:
         9: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.debug.core.model.IDebugTarget
            astore 1 /* target */
        start local 1 // org.eclipse.debug.core.model.IDebugTarget target
        10: .line 565
            aload 1 /* target */
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.isDisconnected:()Z
            ifne 13
        11: .line 570
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        12: .line 566
            iconst_0
            ireturn
        end local 1 // org.eclipse.debug.core.model.IDebugTarget target
        13: .line 564
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        14: .line 569
            goto 18
      StackMap locals: org.eclipse.debug.core.Launch
      StackMap stack: java.lang.Throwable
        15: astore 3
        16: .line 570
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        17: .line 571
            aload 3
            athrow
        18: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.debug.core.Launch.readLock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 573
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.hasChildren:()Z
            ireturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/eclipse/debug/core/Launch;
            3    7     1  process  Lorg/eclipse/debug/core/model/IProcess;
           10   13     1   target  Lorg/eclipse/debug/core/model/IDebugTarget;
      Exception table:
        from    to  target  type
           1     5      15  any
           7    11      15  any
          13    15      15  any

  public void launchRemoved(org.eclipse.debug.core.ILaunch);
    descriptor: (Lorg/eclipse/debug/core/ILaunch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunch launch
         0: .line 578
            aload 0 /* this */
            aload 1 /* launch */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 579
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.removeEventListener:()V
         2: .line 580
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 0 /* this */
            invokeinterface org.eclipse.debug.core.ILaunchManager.removeLaunchListener:(Lorg/eclipse/debug/core/ILaunchListener;)V
         3: .line 581
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 0 /* this */
            invokeinterface org.eclipse.debug.core.ILaunchManager.removeLaunchConfigurationListener:(Lorg/eclipse/debug/core/ILaunchConfigurationListener;)V
         4: .line 583
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.ILaunch launch
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/eclipse/debug/core/Launch;
            0    5     1  launch  Lorg/eclipse/debug/core/ILaunch;
    MethodParameters:
        Name  Flags
      launch  

  protected org.eclipse.debug.core.ILaunchManager getLaunchManager();
    descriptor: ()Lorg/eclipse/debug/core/ILaunchManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.core.Launch this
         0: .line 591
            invokestatic org.eclipse.debug.core.DebugPlugin.getDefault:()Lorg/eclipse/debug/core/DebugPlugin;
            invokevirtual org.eclipse.debug.core.DebugPlugin.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            areturn
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/core/Launch;

  public void launchAdded(org.eclipse.debug.core.ILaunch);
    descriptor: (Lorg/eclipse/debug/core/ILaunch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunch launch
         0: .line 596
            return
        end local 1 // org.eclipse.debug.core.ILaunch launch
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/debug/core/Launch;
            0    1     1  launch  Lorg/eclipse/debug/core/ILaunch;
    MethodParameters:
        Name  Flags
      launch  

  public void launchChanged(org.eclipse.debug.core.ILaunch);
    descriptor: (Lorg/eclipse/debug/core/ILaunch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunch launch
         0: .line 600
            return
        end local 1 // org.eclipse.debug.core.ILaunch launch
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/eclipse/debug/core/Launch;
            0    1     1  launch  Lorg/eclipse/debug/core/ILaunch;
    MethodParameters:
        Name  Flags
      launch  

  public void launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration);
    descriptor: (Lorg/eclipse/debug/core/ILaunchConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
         0: .line 608
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 1 /* configuration */
            invokeinterface org.eclipse.debug.core.ILaunchManager.getMovedFrom:(Lorg/eclipse/debug/core/ILaunchConfiguration;)Lorg/eclipse/debug/core/ILaunchConfiguration;
            astore 2 /* from */
        start local 2 // org.eclipse.debug.core.ILaunchConfiguration from
         1: .line 609
            aload 2 /* from */
            ifnull 4
            aload 2 /* from */
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchConfiguration:()Lorg/eclipse/debug/core/ILaunchConfiguration;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 610
            aload 0 /* this */
            aload 1 /* configuration */
            putfield org.eclipse.debug.core.Launch.fConfiguration:Lorg/eclipse/debug/core/ILaunchConfiguration;
         3: .line 611
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
         4: .line 613
      StackMap locals: org.eclipse.debug.core.ILaunchConfiguration
      StackMap stack:
            return
        end local 2 // org.eclipse.debug.core.ILaunchConfiguration from
        end local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/eclipse/debug/core/Launch;
            0    5     1  configuration  Lorg/eclipse/debug/core/ILaunchConfiguration;
            1    5     2           from  Lorg/eclipse/debug/core/ILaunchConfiguration;
    MethodParameters:
               Name  Flags
      configuration  

  public void launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration);
    descriptor: (Lorg/eclipse/debug/core/ILaunchConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
         0: .line 616
            return
        end local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/debug/core/Launch;
            0    1     1  configuration  Lorg/eclipse/debug/core/ILaunchConfiguration;
    MethodParameters:
               Name  Flags
      configuration  

  public void launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration);
    descriptor: (Lorg/eclipse/debug/core/ILaunchConfiguration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
         0: .line 624
            aload 1 /* configuration */
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchConfiguration:()Lorg/eclipse/debug/core/ILaunchConfiguration;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 625
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            aload 1 /* configuration */
            invokeinterface org.eclipse.debug.core.ILaunchManager.getMovedTo:(Lorg/eclipse/debug/core/ILaunchConfiguration;)Lorg/eclipse/debug/core/ILaunchConfiguration;
            ifnonnull 4
         2: .line 626
            aload 0 /* this */
            aconst_null
            putfield org.eclipse.debug.core.Launch.fConfiguration:Lorg/eclipse/debug/core/ILaunchConfiguration;
         3: .line 627
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireChanged:()V
         4: .line 630
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.debug.core.ILaunchConfiguration configuration
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/eclipse/debug/core/Launch;
            0    5     1  configuration  Lorg/eclipse/debug/core/ILaunchConfiguration;
    MethodParameters:
               Name  Flags
      configuration  

  public void handleDebugEvents(org.eclipse.debug.core.DebugEvent[]);
    descriptor: ([Lorg/eclipse/debug/core/DebugEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // org.eclipse.debug.core.DebugEvent[] events
         0: .line 634
            aload 1 /* events */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 14
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.DebugEvent[] top int int org.eclipse.debug.core.DebugEvent[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* event */
        start local 2 // org.eclipse.debug.core.DebugEvent event
         2: .line 635
            aload 2 /* event */
            invokevirtual org.eclipse.debug.core.DebugEvent.getKind:()I
            bipush 8
            if_icmpne 13
         3: .line 636
            aload 2 /* event */
            invokevirtual org.eclipse.debug.core.DebugEvent.getSource:()Ljava/lang/Object;
            astore 6 /* object */
        start local 6 // java.lang.Object object
         4: .line 637
            aconst_null
            astore 7 /* launch */
        start local 7 // org.eclipse.debug.core.ILaunch launch
         5: .line 638
            aload 6 /* object */
            instanceof org.eclipse.debug.core.model.IProcess
            ifeq 8
         6: .line 639
            aload 6 /* object */
            checkcast org.eclipse.debug.core.model.IProcess
            invokeinterface org.eclipse.debug.core.model.IProcess.getLaunch:()Lorg/eclipse/debug/core/ILaunch;
            astore 7 /* launch */
         7: .line 640
            goto 10
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.DebugEvent[] org.eclipse.debug.core.DebugEvent int int org.eclipse.debug.core.DebugEvent[] java.lang.Object org.eclipse.debug.core.ILaunch
      StackMap stack:
         8: aload 6 /* object */
            instanceof org.eclipse.debug.core.model.IDebugTarget
            ifeq 10
         9: .line 641
            aload 6 /* object */
            checkcast org.eclipse.debug.core.model.IDebugTarget
            invokeinterface org.eclipse.debug.core.model.IDebugTarget.getLaunch:()Lorg/eclipse/debug/core/ILaunch;
            astore 7 /* launch */
        10: .line 643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* launch */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 644
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.isTerminated:()Z
            ifeq 13
        12: .line 645
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.fireTerminate:()V
        end local 7 // org.eclipse.debug.core.ILaunch launch
        end local 6 // java.lang.Object object
        end local 2 // org.eclipse.debug.core.DebugEvent event
        13: .line 634
      StackMap locals: org.eclipse.debug.core.Launch org.eclipse.debug.core.DebugEvent[] top int int org.eclipse.debug.core.DebugEvent[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        14: iload 3
            iload 4
            if_icmplt 1
        15: .line 650
            return
        end local 1 // org.eclipse.debug.core.DebugEvent[] events
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/eclipse/debug/core/Launch;
            0   16     1  events  [Lorg/eclipse/debug/core/DebugEvent;
            2   13     2   event  Lorg/eclipse/debug/core/DebugEvent;
            4   13     6  object  Ljava/lang/Object;
            5   13     7  launch  Lorg/eclipse/debug/core/ILaunch;
    MethodParameters:
        Name  Flags
      events  

  public <T> T getAdapter(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.debug.core.Launch this
        start local 1 // java.lang.Class adapter
         0: .line 655
            aload 1 /* adapter */
            ldc Lorg/eclipse/debug/core/ILaunch;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 656
            aload 0 /* this */
            areturn
         2: .line 659
      StackMap locals:
      StackMap stack:
            aload 1 /* adapter */
            ldc Lorg/eclipse/debug/core/ILaunchConfiguration;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 660
            aload 0 /* this */
            invokevirtual org.eclipse.debug.core.Launch.getLaunchConfiguration:()Lorg/eclipse/debug/core/ILaunchConfiguration;
            areturn
         4: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* adapter */
            invokespecial org.eclipse.core.runtime.PlatformObject.getAdapter:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class adapter
        end local 0 // org.eclipse.debug.core.Launch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/eclipse/debug/core/Launch;
            0    5     1  adapter  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
         Name  Flags
      adapter  
}
SourceFile: "Launch.java"