public class org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils
  super_class: java.lang.Object
{
  private static java.util.HashMap<java.lang.String, java.util.zip.ZipFile> fgZipFileCache;
    descriptor: Ljava/util/HashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/util/zip/ZipFile;>;

  private static org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils$ArchiveCleaner fgCleaner;
    descriptor: Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 43
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            putstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
         1: .line 44
            aconst_null
            putstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils;

  public static java.util.zip.ZipFile getZipFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/zip/ZipFile;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 55
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            dup
            astore 1
            monitorenter
         1: .line 56
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            ifnonnull 5
         2: .line 57
            new org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils$ArchiveCleaner
            dup
            invokespecial org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils$ArchiveCleaner.<init>:()V
            putstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
         3: .line 58
            invokestatic org.eclipse.debug.core.DebugPlugin.getDefault:()Lorg/eclipse/debug/core/DebugPlugin;
            invokevirtual org.eclipse.debug.core.DebugPlugin.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            invokeinterface org.eclipse.debug.core.ILaunchManager.addLaunchListener:(Lorg/eclipse/debug/core/ILaunchesListener;)V
         4: .line 59
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            bipush 6
            invokeinterface org.eclipse.core.resources.IWorkspace.addResourceChangeListener:(Lorg/eclipse/core/resources/IResourceChangeListener;I)V
         5: .line 61
      StackMap locals: java.util.HashMap
      StackMap stack:
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            aload 0 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.zip.ZipFile
            astore 2 /* zip */
        start local 2 // java.util.zip.ZipFile zip
         6: .line 62
            aload 2 /* zip */
            ifnonnull 9
         7: .line 63
            new java.util.zip.ZipFile
            dup
            aload 0 /* name */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 2 /* zip */
         8: .line 64
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            aload 0 /* name */
            aload 2 /* zip */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 66
      StackMap locals: java.util.zip.ZipFile
      StackMap stack:
            aload 2 /* zip */
            aload 1
            monitorexit
        10: areturn
        end local 2 // java.util.zip.ZipFile zip
        11: .line 55
      StackMap locals: java.lang.String java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  name  Ljava/lang/String;
            6   11     2   zip  Ljava/util/zip/ZipFile;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public static void closeArchives();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=0
         0: .line 77
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            dup
            astore 0
            monitorenter
         1: .line 78
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 12
      StackMap locals: java.util.HashMap top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.zip.ZipFile
            astore 1 /* file */
        start local 1 // java.util.zip.ZipFile file
         3: .line 79
            aload 1 /* file */
            dup
            astore 3
            monitorenter
         4: .line 81
            aload 1 /* file */
            invokevirtual java.util.zip.ZipFile.close:()V
         5: .line 82
            goto 8
      StackMap locals: java.util.HashMap java.util.zip.ZipFile java.util.Iterator java.util.zip.ZipFile
      StackMap stack: java.io.IOException
         6: astore 4 /* e */
        start local 4 // java.io.IOException e
         7: .line 83
            aload 4 /* e */
            invokestatic org.eclipse.debug.core.DebugPlugin.log:(Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException e
         8: .line 79
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        end local 1 // java.util.zip.ZipFile file
        12: .line 78
      StackMap locals: java.util.HashMap top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 87
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgZipFileCache:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
        14: .line 77
            aload 0
            monitorexit
        15: goto 18
      StackMap locals: java.util.HashMap
      StackMap stack: java.lang.Throwable
        16: aload 0
            monitorexit
        17: athrow
        18: .line 89
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3   12     1  file  Ljava/util/zip/ZipFile;
            7    8     4     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           4     9      10  any
          10    11      10  any
           1    15      16  any
          16    17      16  any

  public static void shutdown();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 95
            invokestatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.closeArchives:()V
         1: .line 96
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            ifnull 4
         2: .line 97
            invokestatic org.eclipse.debug.core.DebugPlugin.getDefault:()Lorg/eclipse/debug/core/DebugPlugin;
            invokevirtual org.eclipse.debug.core.DebugPlugin.getLaunchManager:()Lorg/eclipse/debug/core/ILaunchManager;
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            invokeinterface org.eclipse.debug.core.ILaunchManager.removeLaunchListener:(Lorg/eclipse/debug/core/ILaunchesListener;)V
         3: .line 98
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            getstatic org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils.fgCleaner:Lorg/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils$ArchiveCleaner;
            invokeinterface org.eclipse.core.resources.IWorkspace.removeResourceChangeListener:(Lorg/eclipse/core/resources/IResourceChangeListener;)V
         4: .line 100
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SourceLookupUtils.java"
NestMembers:
  org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils$ArchiveCleaner
InnerClasses:
  ArchiveCleaner = org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils$ArchiveCleaner of org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils