public final class org.eclipse.jdt.internal.core.nd.indexer.Indexer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.nd.indexer.Indexer
  super_class: java.lang.Object
{
  private org.eclipse.jdt.internal.core.nd.Nd nd;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/Nd;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.core.resources.IWorkspaceRoot root;
    descriptor: Lorg/eclipse/core/resources/IWorkspaceRoot;
    flags: (0x0002) ACC_PRIVATE

  private static org.eclipse.jdt.internal.core.nd.indexer.Indexer indexer;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static boolean DEBUG;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_ALLOCATIONS;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_TIMING;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_SCHEDULING;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_INSERTIONS;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean DEBUG_SELFTEST;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int DEBUG_LOG_SIZE_MB;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

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

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

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

  private final java.lang.Object automaticIndexingMutex;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.eclipse.jdt.internal.core.nd.indexer.FileStateCache fileStateCache;
    descriptor: Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.lang.Object mutex;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.lang.Object listenersMutex;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener> listeners;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;>;

  private org.eclipse.core.runtime.jobs.JobGroup group;
    descriptor: Lorg/eclipse/core/runtime/jobs/JobGroup;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.core.runtime.jobs.Job rescanJob;
    descriptor: Lorg/eclipse/core/runtime/jobs/Job;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.core.runtime.jobs.Job rebuildIndexJob;
    descriptor: Lorg/eclipse/core/runtime/jobs/Job;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 134
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.mutex:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.eclipse.jdt.internal.core.nd.indexer.Indexer getInstance();
    descriptor: ()Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 164
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.mutex:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 165
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexer:Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            ifnonnull 3
         2: .line 166
            new org.eclipse.jdt.internal.core.nd.indexer.Indexer
            dup
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getGlobalNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            invokespecial org.eclipse.jdt.internal.core.nd.indexer.Indexer.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;Lorg/eclipse/core/resources/IWorkspaceRoot;)V
            putstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexer:Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
         3: .line 170
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexer:Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            aload 0
            monitorexit
         4: areturn
         5: .line 164
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 0
            monitorexit
         6: athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public void enableAutomaticIndexing(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // boolean enabled
         0: .line 187
            iconst_0
            istore 2 /* runRescan */
        start local 2 // boolean runRescan
         1: .line 188
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.automaticIndexingMutex:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 189
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.enableAutomaticIndexing:Z
            iload 1 /* enabled */
            if_icmpne 5
         3: .line 190
            aload 3
            monitorexit
         4: return
         5: .line 192
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iload 1 /* enabled */
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.enableAutomaticIndexing:Z
         6: .line 193
            iload 1 /* enabled */
            ifeq 8
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
            ifeq 8
         7: .line 194
            iconst_1
            istore 2 /* runRescan */
         8: .line 188
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 198
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifeq 19
        13: .line 199
            iload 2 /* runRescan */
            ifeq 15
        14: .line 201
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.schedule:()V
        15: .line 204
      StackMap locals:
      StackMap stack:
            iload 1 /* enabled */
            ifne 19
        16: .line 208
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            lconst_0
            aconst_null
            invokevirtual org.eclipse.core.runtime.jobs.Job.join:(JLorg/eclipse/core/runtime/IProgressMonitor;)Z
            pop
        17: .line 209
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean runRescan
        end local 1 // boolean enabled
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   20     1    enabled  Z
            1   20     2  runRescan  Z
      Exception table:
        from    to  target  type
           2     4      10  any
           5     9      10  any
          10    11      10  any
          16    17      18  Class org.eclipse.core.runtime.OperationCanceledException
          16    17      18  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      enabled  

  private static long getGarbageCleanupTimeout();
    descriptor: ()J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 225
            invokestatic org.eclipse.core.runtime.Platform.getPreferencesService:()Lorg/eclipse/core/runtime/preferences/IPreferencesService;
            ldc "org.eclipse.jdt.core"
            ldc "garbageCleanupTimeoutMs"
         1: .line 226
            ldc 259200000
         2: .line 227
            aconst_null
         3: .line 225
            invokeinterface org.eclipse.core.runtime.preferences.IPreferencesService.getLong:(Ljava/lang/String;Ljava/lang/String;J[Lorg/eclipse/core/runtime/preferences/IScopeContext;)J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static long getUsageTimestampUpdatePeriod();
    descriptor: ()J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 236
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.getGarbageCleanupTimeout:()J
            ldc 4
            ldiv
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void rescan(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=71, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 240
            aload 1 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 2 /* subMonitor */
        start local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 241
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            astore 3 /* db */
        start local 3 // org.eclipse.jdt.internal.core.nd.db.Database db
         2: .line 242
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.resetCacheCounters:()V
         3: .line 243
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLog:()Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog;
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_LOG_SIZE_MB:I
            invokevirtual org.eclipse.jdt.internal.core.nd.db.ModificationLog.setBufferSize:(I)V
         4: .line 245
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.automaticIndexingMutex:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         5: .line 246
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
         6: .line 245
            aload 4
            monitorexit
         7: goto 10
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 249
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 4 /* currentTimeMs */
        start local 4 // long currentTimeMs
        11: .line 250
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 13
        12: .line 251
            ldc "Indexer running rescan"
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        13: .line 254
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.clear:()V
        14: .line 255
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.root:Lorg/eclipse/core/resources/IWorkspaceRoot;
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot.create:(Lorg/eclipse/core/resources/IWorkspaceRoot;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/indexer/WorkspaceSnapshot;
            astore 6 /* snapshot */
        start local 6 // org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot snapshot
        15: .line 256
            aload 6 /* snapshot */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot.allLocations:()Ljava/util/Set;
            astore 7 /* locations */
        start local 7 // java.util.Set locations
        16: .line 258
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 8 /* startGarbageCollectionMs */
        start local 8 // long startGarbageCollectionMs
        17: .line 261
            aload 0 /* this */
            lload 4 /* currentTimeMs */
            aload 7 /* locations */
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.cleanGarbage:(JLjava/util/Collection;Lorg/eclipse/core/runtime/IProgressMonitor;)I
            istore 10 /* gcFiles */
        start local 10 // int gcFiles
        18: .line 263
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 11 /* startFingerprintTestMs */
        start local 11 // long startFingerprintTestMs
        19: .line 265
            aload 0 /* this */
            aload 7 /* locations */
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.testFingerprints:(Ljava/util/Collection;Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/util/Map;
            astore 13 /* fingerprints */
        start local 13 // java.util.Map fingerprints
        20: .line 266
            new java.util.HashSet
            dup
        21: .line 267
            aload 0 /* this */
            aload 7 /* locations */
            aload 13 /* fingerprints */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.getIndexablesThatHaveChanged:(Ljava/util/Collection;Ljava/util/Map;)Ljava/util/List;
        22: .line 266
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 14 /* indexablesWithChanges */
        start local 14 // java.util.Set indexablesWithChanges
        23: .line 270
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 15 /* startIndexingMs */
        start local 15 // long startIndexingMs
        24: .line 271
            lconst_0
            lstore 17 /* totalSizeToIndex */
        start local 17 // long totalSizeToIndex
        25: .line 272
            aload 14 /* indexablesWithChanges */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 20
            goto 29
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long top java.util.Iterator
      StackMap stack:
        26: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            astore 19 /* next */
        start local 19 // org.eclipse.core.runtime.IPath next
        27: .line 273
            aload 13 /* fingerprints */
            aload 19 /* next */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult
            astore 21 /* nextFingerprint */
        start local 21 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult nextFingerprint
        28: .line 274
            lload 17 /* totalSizeToIndex */
            aload 21 /* nextFingerprint */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.getNewFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.getSize:()J
            ladd
            lstore 17 /* totalSizeToIndex */
        end local 21 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult nextFingerprint
        end local 19 // org.eclipse.core.runtime.IPath next
        29: .line 272
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        30: .line 276
            lload 17 /* totalSizeToIndex */
            lconst_0
            lcmp
            ifne 31
            dconst_0
            goto 32
        31: .line 277
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long
      StackMap stack:
            ldc 1000.0
            lload 17 /* totalSizeToIndex */
            l2d
            ddiv
        32: .line 276
      StackMap locals:
      StackMap stack: double
            dstore 19 /* tickCoefficient */
        start local 19 // double tickCoefficient
        33: .line 279
            iconst_0
            istore 21 /* classesIndexed */
        start local 21 // int classesIndexed
        34: .line 280
            aload 2 /* subMonitor */
            bipush 94
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            sipush 1000
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 22 /* loopMonitor */
        start local 22 // org.eclipse.core.runtime.SubMonitor loopMonitor
        35: .line 281
            aload 14 /* indexablesWithChanges */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 24
            goto 42
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        36: aload 24
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            astore 23 /* next */
        start local 23 // org.eclipse.core.runtime.IPath next
        37: .line 282
            aload 13 /* fingerprints */
            aload 23 /* next */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult
            astore 25 /* nextFingerprint */
        start local 25 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult nextFingerprint
        38: .line 283
            aload 25 /* nextFingerprint */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.getNewFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.getSize:()J
            l2d
            dload 19 /* tickCoefficient */
            dmul
            d2i
            istore 26 /* ticks */
        start local 26 // int ticks
        39: .line 285
            iload 21 /* classesIndexed */
            aload 0 /* this */
            lload 4 /* currentTimeMs */
            aload 23 /* next */
            aload 6 /* snapshot */
            aload 23 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot.get:(Lorg/eclipse/core/runtime/IPath;)Ljava/util/List;
        40: .line 286
            aload 13 /* fingerprints */
            aload 23 /* next */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.getNewFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            aload 22 /* loopMonitor */
            iload 26 /* ticks */
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
        41: .line 285
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanArchive:(JLorg/eclipse/core/runtime/IPath;Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;Lorg/eclipse/core/runtime/IProgressMonitor;)I
            iadd
            istore 21 /* classesIndexed */
        end local 26 // int ticks
        end local 25 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult nextFingerprint
        end local 23 // org.eclipse.core.runtime.IPath next
        42: .line 281
      StackMap locals:
      StackMap stack:
            aload 24
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        43: .line 289
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 23 /* endIndexingMs */
        start local 23 // long endIndexingMs
        44: .line 291
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 25 /* pathsToUpdate */
        start local 25 // java.util.Map pathsToUpdate
        45: .line 293
            aload 7 /* locations */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 27
            goto 49
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map top java.util.Iterator
      StackMap stack:
        46: aload 27
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            astore 26 /* next */
        start local 26 // org.eclipse.core.runtime.IPath next
        47: .line 294
            aload 14 /* indexablesWithChanges */
            aload 26 /* next */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 49
        48: .line 295
            aload 25 /* pathsToUpdate */
            aload 26 /* next */
            aload 6 /* snapshot */
            aload 26 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot.get:(Lorg/eclipse/core/runtime/IPath;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 26 // org.eclipse.core.runtime.IPath next
        49: .line 293
      StackMap locals:
      StackMap stack:
            aload 27
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        50: .line 300
            aload 0 /* this */
            aload 25 /* pathsToUpdate */
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.updateResourceMappings:(Ljava/util/Map;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        51: .line 303
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        52: .line 305
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.flush:()Z
            pop
        53: .line 306
            goto 57
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map
      StackMap stack: java.lang.Throwable
        54: astore 26
        55: .line 307
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        56: .line 308
            aload 26
            athrow
        57: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        58: .line 310
            aload 0 /* this */
            aload 14 /* indexablesWithChanges */
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.fireDelta:(Ljava/util/Set;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        59: .line 312
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 61
        60: .line 313
            ldc "Rescan finished"
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        61: .line 316
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 26 /* endResourceMappingMs */
        start local 26 // long endResourceMappingMs
        62: .line 318
            lload 8 /* startGarbageCollectionMs */
            lload 4 /* currentTimeMs */
            lsub
            lstore 28 /* locateIndexablesTimeMs */
        start local 28 // long locateIndexablesTimeMs
        63: .line 319
            lload 11 /* startFingerprintTestMs */
            lload 8 /* startGarbageCollectionMs */
            lsub
            lstore 30 /* garbageCollectionMs */
        start local 30 // long garbageCollectionMs
        64: .line 320
            lload 15 /* startIndexingMs */
            lload 11 /* startFingerprintTestMs */
            lsub
            lstore 32 /* fingerprintTimeMs */
        start local 32 // long fingerprintTimeMs
        65: .line 321
            lload 23 /* endIndexingMs */
            lload 15 /* startIndexingMs */
            lsub
            lstore 34 /* indexingTimeMs */
        start local 34 // long indexingTimeMs
        66: .line 322
            lload 26 /* endResourceMappingMs */
            lload 23 /* endIndexingMs */
            lsub
            lstore 36 /* resourceMappingTimeMs */
        start local 36 // long resourceMappingTimeMs
        67: .line 324
            iload 10 /* gcFiles */
            ifne 68
            dconst_0
            goto 69
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map long long long long long long
      StackMap stack:
        68: lload 30 /* garbageCollectionMs */
            l2d
            iload 10 /* gcFiles */
            i2d
            ddiv
      StackMap locals:
      StackMap stack: double
        69: dstore 38 /* averageGcTimeMs */
        start local 38 // double averageGcTimeMs
        70: .line 325
            iload 21 /* classesIndexed */
            ifne 71
            dconst_0
            goto 72
      StackMap locals: double
      StackMap stack:
        71: lload 34 /* indexingTimeMs */
            l2d
            iload 21 /* classesIndexed */
            i2d
            ddiv
      StackMap locals:
      StackMap stack: double
        72: dstore 40 /* averageIndexTimeMs */
        start local 40 // double averageIndexTimeMs
        73: .line 326
            aload 7 /* locations */
            invokeinterface java.util.Set.size:()I
            ifne 74
            dconst_0
            goto 75
        74: .line 327
      StackMap locals: double
      StackMap stack:
            lload 32 /* fingerprintTimeMs */
            l2d
            aload 7 /* locations */
            invokeinterface java.util.Set.size:()I
            i2d
            ddiv
        75: .line 326
      StackMap locals:
      StackMap stack: double
            dstore 42 /* averageFingerprintTimeMs */
        start local 42 // double averageFingerprintTimeMs
        76: .line 328
            aload 25 /* pathsToUpdate */
            invokeinterface java.util.Map.size:()I
            ifne 77
            dconst_0
            goto 78
        77: .line 329
      StackMap locals: double
      StackMap stack:
            lload 36 /* resourceMappingTimeMs */
            l2d
            aload 25 /* pathsToUpdate */
            invokeinterface java.util.Map.size:()I
            i2d
            ddiv
        78: .line 328
      StackMap locals:
      StackMap stack: double
            dstore 44 /* averageResourceMappingMs */
        start local 44 // double averageResourceMappingMs
        79: .line 331
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_TIMING:Z
            ifeq 135
        80: .line 332
            new java.text.DecimalFormat
            dup
            ldc "#0.###"
            invokespecial java.text.DecimalFormat.<init>:(Ljava/lang/String;)V
            astore 46 /* msFormat */
        start local 46 // java.text.DecimalFormat msFormat
        81: .line 333
            new java.text.DecimalFormat
            dup
            ldc "#0.###"
            invokespecial java.text.DecimalFormat.<init>:(Ljava/lang/String;)V
            astore 47 /* percentFormat */
        start local 47 // java.text.DecimalFormat percentFormat
        82: .line 334
            new java.text.SimpleDateFormat
            dup
            ldc "yyyy-MM-dd HH:mm:ss.SSS\n"
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;)V
            astore 48 /* format */
        start local 48 // java.text.SimpleDateFormat format
        83: .line 335
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Indexing done at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 48 /* format */
            new java.util.Date
            dup
            lload 26 /* endResourceMappingMs */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.text.SimpleDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        84: .line 336
            ldc "  Located "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* locations */
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " indexables in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 28 /* locateIndexablesTimeMs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        85: .line 335
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        86: .line 337
            iload 10 /* gcFiles */
            ifeq 90
        87: .line 338
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Collected garbage from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* gcFiles */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " files in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 30 /* garbageCollectionMs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        88: .line 339
            ldc "ms, average time = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 46 /* msFormat */
            dload 38 /* averageGcTimeMs */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        89: .line 338
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        90: .line 341
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map long long long long long long double double double double java.text.DecimalFormat java.text.DecimalFormat java.text.SimpleDateFormat
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Tested "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* locations */
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " fingerprints in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 32 /* fingerprintTimeMs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        91: .line 342
            ldc "ms, average time = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 46 /* msFormat */
            dload 42 /* averageFingerprintTimeMs */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        92: .line 341
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        93: .line 343
            iload 21 /* classesIndexed */
            ifeq 98
        94: .line 344
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Indexed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 21 /* classesIndexed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " classes (from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* indexablesWithChanges */
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        95: .line 345
            ldc " files containing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 17 /* totalSizeToIndex */
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.formatByteString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 34 /* indexingTimeMs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        96: .line 346
            ldc "ms, average time per class = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 46 /* msFormat */
            dload 40 /* averageIndexTimeMs */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        97: .line 344
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        98: .line 348
      StackMap locals:
      StackMap stack:
            aload 25 /* pathsToUpdate */
            invokeinterface java.util.Map.size:()I
            ifeq 102
        99: .line 349
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Updated "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 25 /* pathsToUpdate */
            invokeinterface java.util.Map.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " paths in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 36 /* resourceMappingTimeMs */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
       100: .line 350
            ldc "ms, average time = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 46 /* msFormat */
            dload 44 /* averageResourceMappingMs */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       101: .line 349
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       102: .line 352
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getChunkStats:()Lorg/eclipse/jdt/internal/core/nd/db/Database$ChunkStats;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       103: .line 353
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getCacheHits:()J
            lstore 49 /* cacheHits */
        start local 49 // long cacheHits
       104: .line 354
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getCacheMisses:()J
            lstore 51 /* cacheMisses */
        start local 51 // long cacheMisses
       105: .line 355
            lload 51 /* cacheMisses */
            lload 49 /* cacheHits */
            ladd
            lstore 53 /* totalReads */
        start local 53 // long totalReads
       106: .line 356
            lload 53 /* totalReads */
            lconst_0
            lcmp
            ifne 107
            dconst_0
            goto 108
      StackMap locals: long long long
      StackMap stack:
       107: lload 51 /* cacheMisses */
            l2d
            ldc 100.0
            dmul
            lload 53 /* totalReads */
            l2d
            ddiv
      StackMap locals:
      StackMap stack: double
       108: dstore 55 /* cacheMissPercent */
        start local 55 // double cacheMissPercent
       109: .line 357
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Cache misses = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 51 /* cacheMisses */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       110: .line 358
            aload 47 /* percentFormat */
            dload 55 /* cacheMissPercent */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "%)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       111: .line 357
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       112: .line 360
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getBytesRead:()J
            lstore 57 /* bytesRead */
        start local 57 // long bytesRead
       113: .line 361
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getBytesWritten:()J
            lstore 59 /* bytesWritten */
        start local 59 // long bytesWritten
       114: .line 362
            lload 26 /* endResourceMappingMs */
            lload 4 /* currentTimeMs */
            lsub
            l2d
            dstore 61 /* totalTimeMs */
        start local 61 // double totalTimeMs
       115: .line 363
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getCumulativeFlushTimeMs:()J
            lstore 63 /* flushTimeMs */
        start local 63 // long flushTimeMs
       116: .line 364
            dload 61 /* totalTimeMs */
            dconst_0
            dcmpl
            ifne 117
            dconst_0
            goto 118
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map long long long long long long double double double double java.text.DecimalFormat java.text.DecimalFormat java.text.SimpleDateFormat long long long double long long double long
      StackMap stack:
       117: lload 63 /* flushTimeMs */
            l2d
            ldc 100.0
            dmul
            dload 61 /* totalTimeMs */
            ddiv
      StackMap locals:
      StackMap stack: double
       118: dstore 65 /* flushPercent */
        start local 65 // double flushPercent
       119: .line 365
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Reads = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 57 /* bytesRead */
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.formatByteString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", writes = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 59 /* bytesWritten */
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.formatByteString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       120: .line 366
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getAverageReadBytesPerMs:()D
            ldc 1000.0
            dmul
            dstore 67 /* averageReadBytesPerSecond */
        start local 67 // double averageReadBytesPerSecond
       121: .line 367
            aload 3 /* db */
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getAverageWriteBytesPerMs:()D
            ldc 1000.0
            dmul
            dstore 69 /* averageWriteBytesPerSecond */
        start local 69 // double averageWriteBytesPerSecond
       122: .line 368
            lload 57 /* bytesRead */
            ldc 409600
            lcmp
            ifle 126
       123: .line 369
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       124: .line 370
            new java.lang.StringBuilder
            dup
            ldc "  Read speed = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 67 /* averageReadBytesPerSecond */
            d2l
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.formatByteString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/s"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       125: .line 369
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       126: .line 372
      StackMap locals: double double double
      StackMap stack:
            lload 59 /* bytesWritten */
            ldc 409600
            lcmp
            ifle 130
       127: .line 373
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       128: .line 374
            new java.lang.StringBuilder
            dup
            ldc "  Write speed = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 69 /* averageWriteBytesPerSecond */
            d2l
            invokestatic org.eclipse.jdt.internal.core.nd.db.Database.formatByteString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/s"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       129: .line 373
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       130: .line 377
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Time spent performing flushes = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       131: .line 378
            aload 46 /* msFormat */
            lload 63 /* flushTimeMs */
            invokevirtual java.text.DecimalFormat.format:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       132: .line 379
            aload 47 /* percentFormat */
            dload 65 /* flushPercent */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "%)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       133: .line 377
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       134: .line 380
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  Total indexing time = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 46 /* msFormat */
            dload 61 /* totalTimeMs */
            invokevirtual java.text.DecimalFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 69 // double averageWriteBytesPerSecond
        end local 67 // double averageReadBytesPerSecond
        end local 65 // double flushPercent
        end local 63 // long flushTimeMs
        end local 61 // double totalTimeMs
        end local 59 // long bytesWritten
        end local 57 // long bytesRead
        end local 55 // double cacheMissPercent
        end local 53 // long totalReads
        end local 51 // long cacheMisses
        end local 49 // long cacheHits
        end local 48 // java.text.SimpleDateFormat format
        end local 47 // java.text.DecimalFormat percentFormat
        end local 46 // java.text.DecimalFormat msFormat
       135: .line 383
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map long long long long long long double double double double
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_ALLOCATIONS:Z
            ifeq 146
       136: .line 384
            aconst_null
            astore 46
            aconst_null
            astore 47
       137: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            astore 48 /* readLock */
        start local 48 // org.eclipse.jdt.internal.core.nd.IReader readLock
       138: .line 385
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.reportFreeBlocks:()V
       139: .line 386
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getMemoryStats:()Lorg/eclipse/jdt/internal/core/nd/db/MemoryStats;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getTypeRegistry:()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.MemoryStats.printMemoryStats:(Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;)V
       140: .line 387
            aload 48 /* readLock */
            ifnull 146
            aload 48 /* readLock */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
            goto 146
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.db.Database long org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot java.util.Set long int long java.util.Map java.util.Set long long double int org.eclipse.core.runtime.SubMonitor long java.util.Map long long long long long long double double double double java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader
      StackMap stack: java.lang.Throwable
       141: astore 46
            aload 48 /* readLock */
            ifnull 142
            aload 48 /* readLock */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        end local 48 // org.eclipse.jdt.internal.core.nd.IReader readLock
      StackMap locals:
      StackMap stack:
       142: aload 46
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       143: astore 47
            aload 46
            ifnonnull 144
            aload 47
            astore 46
            goto 145
      StackMap locals:
      StackMap stack:
       144: aload 46
            aload 47
            if_acmpeq 145
            aload 46
            aload 47
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       145: aload 46
            athrow
       146: .line 389
      StackMap locals:
      StackMap stack:
            return
        end local 44 // double averageResourceMappingMs
        end local 42 // double averageFingerprintTimeMs
        end local 40 // double averageIndexTimeMs
        end local 38 // double averageGcTimeMs
        end local 36 // long resourceMappingTimeMs
        end local 34 // long indexingTimeMs
        end local 32 // long fingerprintTimeMs
        end local 30 // long garbageCollectionMs
        end local 28 // long locateIndexablesTimeMs
        end local 26 // long endResourceMappingMs
        end local 25 // java.util.Map pathsToUpdate
        end local 23 // long endIndexingMs
        end local 22 // org.eclipse.core.runtime.SubMonitor loopMonitor
        end local 21 // int classesIndexed
        end local 19 // double tickCoefficient
        end local 17 // long totalSizeToIndex
        end local 15 // long startIndexingMs
        end local 14 // java.util.Set indexablesWithChanges
        end local 13 // java.util.Map fingerprints
        end local 11 // long startFingerprintTestMs
        end local 10 // int gcFiles
        end local 8 // long startGarbageCollectionMs
        end local 7 // java.util.Set locations
        end local 6 // org.eclipse.jdt.internal.core.nd.indexer.WorkspaceSnapshot snapshot
        end local 4 // long currentTimeMs
        end local 3 // org.eclipse.jdt.internal.core.nd.db.Database db
        end local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0  147     0                        this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0  147     1                     monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1  147     2                  subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2  147     3                          db  Lorg/eclipse/jdt/internal/core/nd/db/Database;
           11  147     4               currentTimeMs  J
           15  147     6                    snapshot  Lorg/eclipse/jdt/internal/core/nd/indexer/WorkspaceSnapshot;
           16  147     7                   locations  Ljava/util/Set<Lorg/eclipse/core/runtime/IPath;>;
           17  147     8    startGarbageCollectionMs  J
           18  147    10                     gcFiles  I
           19  147    11      startFingerprintTestMs  J
           20  147    13                fingerprints  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;>;
           23  147    14       indexablesWithChanges  Ljava/util/Set<Lorg/eclipse/core/runtime/IPath;>;
           24  147    15             startIndexingMs  J
           25  147    17            totalSizeToIndex  J
           27   29    19                        next  Lorg/eclipse/core/runtime/IPath;
           28   29    21             nextFingerprint  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
           33  147    19             tickCoefficient  D
           34  147    21              classesIndexed  I
           35  147    22                 loopMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           37   42    23                        next  Lorg/eclipse/core/runtime/IPath;
           38   42    25             nextFingerprint  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
           39   42    26                       ticks  I
           44  147    23               endIndexingMs  J
           45  147    25               pathsToUpdate  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;>;
           47   49    26                        next  Lorg/eclipse/core/runtime/IPath;
           62  147    26        endResourceMappingMs  J
           63  147    28      locateIndexablesTimeMs  J
           64  147    30         garbageCollectionMs  J
           65  147    32           fingerprintTimeMs  J
           66  147    34              indexingTimeMs  J
           67  147    36       resourceMappingTimeMs  J
           70  147    38             averageGcTimeMs  D
           73  147    40          averageIndexTimeMs  D
           76  147    42    averageFingerprintTimeMs  D
           79  147    44    averageResourceMappingMs  D
           81  135    46                    msFormat  Ljava/text/DecimalFormat;
           82  135    47               percentFormat  Ljava/text/DecimalFormat;
           83  135    48                      format  Ljava/text/SimpleDateFormat;
          104  135    49                   cacheHits  J
          105  135    51                 cacheMisses  J
          106  135    53                  totalReads  J
          109  135    55            cacheMissPercent  D
          113  135    57                   bytesRead  J
          114  135    59                bytesWritten  J
          115  135    61                 totalTimeMs  D
          116  135    63                 flushTimeMs  J
          119  135    65                flushPercent  D
          121  135    67   averageReadBytesPerSecond  D
          122  135    69  averageWriteBytesPerSecond  D
          138  142    48                    readLock  Lorg/eclipse/jdt/internal/core/nd/IReader;
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
          52    54      54  any
         138   140     141  any
         137   143     143  any
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
         Name  Flags
      monitor  

  private void fireDelta(java.util.Set<org.eclipse.core.runtime.IPath>, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/Set;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=19, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // java.util.Set indexablesWithChanges
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 392
            aload 2 /* monitor */
            iconst_1
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 3 /* subMonitor */
        start local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 393
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.root:Lorg/eclipse/core/resources/IWorkspaceRoot;
            invokeinterface org.eclipse.core.resources.IWorkspaceRoot.getProjects:()[Lorg/eclipse/core/resources/IProject;
            astore 4 /* projects */
        start local 4 // org.eclipse.core.resources.IProject[] projects
         2: .line 395
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* projectsToScan */
        start local 5 // java.util.List projectsToScan
         3: .line 397
            aload 4 /* projects */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 8
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List top int int org.eclipse.core.resources.IProject[]
      StackMap stack:
         4: aload 9
            iload 7
            aaload
            astore 6 /* next */
        start local 6 // org.eclipse.core.resources.IProject next
         5: .line 398
            aload 6 /* next */
            invokeinterface org.eclipse.core.resources.IProject.isOpen:()Z
            ifeq 7
         6: .line 399
            aload 5 /* projectsToScan */
            aload 6 /* next */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.core.resources.IProject next
         7: .line 397
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         8: iload 7
            iload 8
            if_icmplt 4
         9: .line 402
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getJavaModel:()Lorg/eclipse/jdt/internal/core/JavaModel;
            astore 6 /* model */
        start local 6 // org.eclipse.jdt.internal.core.JavaModel model
        10: .line 403
            iconst_0
            istore 7 /* hasChanges */
        start local 7 // boolean hasChanges
        11: .line 404
            new org.eclipse.jdt.internal.core.JavaElementDelta
            dup
            aload 6 /* model */
            invokespecial org.eclipse.jdt.internal.core.JavaElementDelta.<init>:(Lorg/eclipse/jdt/core/IJavaElement;)V
            astore 8 /* delta */
        start local 8 // org.eclipse.jdt.internal.core.JavaElementDelta delta
        12: .line 405
            aload 3 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            aload 5 /* projectsToScan */
            invokeinterface java.util.List.size:()I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 9 /* projectLoopMonitor */
        start local 9 // org.eclipse.core.runtime.SubMonitor projectLoopMonitor
        13: .line 406
            aload 5 /* projectsToScan */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 33
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List org.eclipse.jdt.internal.core.JavaModel int org.eclipse.jdt.internal.core.JavaElementDelta org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        14: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.resources.IProject
            astore 10 /* project */
        start local 10 // org.eclipse.core.resources.IProject project
        15: .line 407
            aload 9 /* projectLoopMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        16: .line 409
            aload 10 /* project */
            invokeinterface org.eclipse.core.resources.IProject.isOpen:()Z
            ifeq 33
            aload 10 /* project */
            ldc "org.eclipse.jdt.core.javanature"
            invokeinterface org.eclipse.core.resources.IProject.isNatureEnabled:(Ljava/lang/String;)Z
            ifeq 33
        17: .line 410
            aload 10 /* project */
            invokestatic org.eclipse.jdt.core.JavaCore.create:(Lorg/eclipse/core/resources/IProject;)Lorg/eclipse/jdt/core/IJavaProject;
            astore 12 /* javaProject */
        start local 12 // org.eclipse.jdt.core.IJavaProject javaProject
        18: .line 412
            aload 12 /* javaProject */
            invokeinterface org.eclipse.jdt.core.IJavaProject.getAllPackageFragmentRoots:()[Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            astore 13 /* roots */
        start local 13 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
        19: .line 414
            aload 13 /* roots */
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 29
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List org.eclipse.jdt.internal.core.JavaModel int org.eclipse.jdt.internal.core.JavaElementDelta org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject java.util.Iterator org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.core.IPackageFragmentRoot[] top int int org.eclipse.jdt.core.IPackageFragmentRoot[]
      StackMap stack:
        20: aload 17
            iload 15
            aaload
            astore 14 /* next */
        start local 14 // org.eclipse.jdt.core.IPackageFragmentRoot next
        21: .line 415
            aload 14 /* next */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.isArchive:()Z
            ifeq 28
        22: .line 416
            aload 14 /* next */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getLocationForElement:(Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/core/runtime/IPath;
            astore 18 /* location */
        start local 18 // org.eclipse.core.runtime.IPath location
        23: .line 418
            aload 1 /* indexablesWithChanges */
            aload 18 /* location */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 28
        24: .line 419
            iconst_1
            istore 7 /* hasChanges */
        25: .line 420
            aload 8 /* delta */
            aload 14 /* next */
        26: .line 421
            ldc 32769
        27: .line 420
            invokevirtual org.eclipse.jdt.internal.core.JavaElementDelta.changed:(Lorg/eclipse/jdt/core/IJavaElement;I)Lorg/eclipse/jdt/internal/core/JavaElementDelta;
            pop
        end local 18 // org.eclipse.core.runtime.IPath location
        end local 14 // org.eclipse.jdt.core.IPackageFragmentRoot next
        28: .line 414
      StackMap locals:
      StackMap stack:
            iinc 15 1
      StackMap locals:
      StackMap stack:
        29: iload 15
            iload 16
            if_icmplt 20
        end local 13 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
        end local 12 // org.eclipse.jdt.core.IJavaProject javaProject
        30: .line 426
            goto 33
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List org.eclipse.jdt.internal.core.JavaModel int org.eclipse.jdt.internal.core.JavaElementDelta org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject java.util.Iterator
      StackMap stack: org.eclipse.core.runtime.CoreException
        31: astore 12 /* e */
        start local 12 // org.eclipse.core.runtime.CoreException e
        32: .line 427
            aload 12 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/Throwable;)V
        end local 12 // org.eclipse.core.runtime.CoreException e
        end local 10 // org.eclipse.core.resources.IProject project
        33: .line 406
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List org.eclipse.jdt.internal.core.JavaModel int org.eclipse.jdt.internal.core.JavaElementDelta org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        34: .line 431
            iload 7 /* hasChanges */
            ifeq 36
        35: .line 432
            aload 0 /* this */
            aload 8 /* delta */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent.createChange:(Lorg/eclipse/jdt/core/IJavaElementDelta;)Lorg/eclipse/jdt/internal/core/nd/indexer/IndexerEvent;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.fireChange:(Lorg/eclipse/jdt/internal/core/nd/indexer/IndexerEvent;)V
        36: .line 434
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Set org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.core.resources.IProject[] java.util.List org.eclipse.jdt.internal.core.JavaModel int org.eclipse.jdt.internal.core.JavaElementDelta org.eclipse.core.runtime.SubMonitor
      StackMap stack:
            return
        end local 9 // org.eclipse.core.runtime.SubMonitor projectLoopMonitor
        end local 8 // org.eclipse.jdt.internal.core.JavaElementDelta delta
        end local 7 // boolean hasChanges
        end local 6 // org.eclipse.jdt.internal.core.JavaModel model
        end local 5 // java.util.List projectsToScan
        end local 4 // org.eclipse.core.resources.IProject[] projects
        end local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.Set indexablesWithChanges
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   37     0                   this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   37     1  indexablesWithChanges  Ljava/util/Set<Lorg/eclipse/core/runtime/IPath;>;
            0   37     2                monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   37     3             subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   37     4               projects  [Lorg/eclipse/core/resources/IProject;
            3   37     5         projectsToScan  Ljava/util/List<Lorg/eclipse/core/resources/IProject;>;
            5    7     6                   next  Lorg/eclipse/core/resources/IProject;
           10   37     6                  model  Lorg/eclipse/jdt/internal/core/JavaModel;
           11   37     7             hasChanges  Z
           12   37     8                  delta  Lorg/eclipse/jdt/internal/core/JavaElementDelta;
           13   37     9     projectLoopMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           15   33    10                project  Lorg/eclipse/core/resources/IProject;
           18   30    12            javaProject  Lorg/eclipse/jdt/core/IJavaProject;
           19   30    13                  roots  [Lorg/eclipse/jdt/core/IPackageFragmentRoot;
           21   28    14                   next  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
           23   28    18               location  Lorg/eclipse/core/runtime/IPath;
           32   33    12                      e  Lorg/eclipse/core/runtime/CoreException;
      Exception table:
        from    to  target  type
          16    30      31  Class org.eclipse.core.runtime.CoreException
    Signature: (Ljava/util/Set<Lorg/eclipse/core/runtime/IPath;>;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    MethodParameters:
                       Name  Flags
      indexablesWithChanges  
      monitor                

  private void updateResourceMappings(java.util.Map<org.eclipse.core.runtime.IPath, java.util.List<org.eclipse.jdt.core.IJavaElement>>, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/Map;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // java.util.Map pathsToUpdate
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 437
            aload 2 /* monitor */
            aload 1 /* pathsToUpdate */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 3 /* subMonitor */
        start local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 439
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 4 /* index */
        start local 4 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
         2: .line 441
            aload 1 /* pathsToUpdate */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Map org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
         4: .line 442
            aload 3 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            bipush 10
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 7 /* iterationMonitor */
        start local 7 // org.eclipse.core.runtime.SubMonitor iterationMonitor
         5: .line 444
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 7 /* iterationMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         6: .line 446
            aload 4 /* index */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getResourceFile:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            astore 8 /* resourceFile */
        start local 8 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
         7: .line 447
            aload 8 /* resourceFile */
            ifnonnull 10
         8: .line 453
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
         9: .line 448
            goto 16
        10: .line 451
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Map org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex java.util.Map$Entry java.util.Iterator org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.NdResourceFile
      StackMap stack:
            aload 0 /* this */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            aload 8 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.attachWorkspaceFilesToResource:(Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)V
        end local 8 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        11: .line 452
            goto 15
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Map org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex java.util.Map$Entry java.util.Iterator org.eclipse.core.runtime.SubMonitor
      StackMap stack: java.lang.Throwable
        12: astore 9
        13: .line 453
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        14: .line 454
            aload 9
            athrow
        15: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        end local 7 // org.eclipse.core.runtime.SubMonitor iterationMonitor
        end local 5 // java.util.Map$Entry entry
        16: .line 441
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Map org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        17: .line 457
            return
        end local 4 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        end local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.Map pathsToUpdate
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   18     1     pathsToUpdate  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;>;
            0   18     2           monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   18     3        subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   18     4             index  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            4   16     5             entry  Ljava/util/Map$Entry<Lorg/eclipse/core/runtime/IPath;Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;>;
            5   16     7  iterationMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            7   11     8      resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
      Exception table:
        from    to  target  type
           6     8      12  any
          10    12      12  any
    Signature: (Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;>;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    MethodParameters:
               Name  Flags
      pathsToUpdate  
      monitor        

  private int cleanGarbage(long, java.util.Collection<org.eclipse.core.runtime.IPath>, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (JLjava/util/Collection;Lorg/eclipse/core/runtime/IProgressMonitor;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=27, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // long currentTimeMillis
        start local 3 // java.util.Collection allIndexables
        start local 4 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 472
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 5 /* index */
        start local 5 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
         1: .line 474
            iconst_0
            istore 6 /* result */
        start local 6 // int result
         2: .line 475
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* paths */
        start local 7 // java.util.HashSet paths
         3: .line 476
            aload 7 /* paths */
            aload 3 /* allIndexables */
            invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 477
            aload 4 /* monitor */
            iconst_3
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 8 /* subMonitor */
        start local 8 // org.eclipse.core.runtime.SubMonitor subMonitor
         5: .line 479
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* garbage */
        start local 9 // java.util.List garbage
         6: .line 480
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* needsUpdate */
        start local 10 // java.util.List needsUpdate
         7: .line 482
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.getUsageTimestampUpdatePeriod:()J
            lstore 11 /* usageTimestampUpdatePeriod */
        start local 11 // long usageTimestampUpdatePeriod
         8: .line 483
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.getGarbageCleanupTimeout:()J
            lstore 13 /* garbageCleanupTimeout */
        start local 13 // long garbageCleanupTimeout
         9: .line 486
            aconst_null
            astore 15
            aconst_null
            astore 16
        10: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            astore 17 /* reader */
        start local 17 // org.eclipse.jdt.internal.core.nd.IReader reader
        11: .line 487
            aload 5 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getAllResourceFiles:()Ljava/util/List;
            astore 18 /* resourceFiles */
        start local 18 // java.util.List resourceFiles
        12: .line 489
            aload 18 /* resourceFiles */
            invokeinterface java.util.List.size:()I
            istore 6 /* result */
        13: .line 490
            aload 8 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            aload 18 /* resourceFiles */
            invokeinterface java.util.List.size:()I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 19 /* testMonitor */
        start local 19 // org.eclipse.core.runtime.SubMonitor testMonitor
        14: .line 491
            aload 18 /* resourceFiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 21
            goto 29
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader java.util.List org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        15: aload 21
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            astore 20 /* next */
        start local 20 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        16: .line 492
            aload 19 /* testMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        17: .line 493
            aload 20 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isDoneIndexing:()Z
            ifne 20
        18: .line 494
            aload 9 /* garbage */
            aload 20 /* next */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 495
            goto 29
        20: .line 496
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader java.util.List org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.NdResourceFile java.util.Iterator
      StackMap stack:
            new org.eclipse.core.runtime.Path
            dup
            aload 20 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial org.eclipse.core.runtime.Path.<init>:(Ljava/lang/String;)V
            astore 22 /* nextPath */
        start local 22 // org.eclipse.core.runtime.IPath nextPath
        21: .line 497
            aload 20 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getTimeLastUsed:()J
            lstore 23 /* timeLastUsed */
        start local 23 // long timeLastUsed
        22: .line 498
            lload 1 /* currentTimeMillis */
            lload 23 /* timeLastUsed */
            lsub
            lstore 25 /* timeSinceLastUsed */
        start local 25 // long timeSinceLastUsed
        23: .line 500
            aload 7 /* paths */
            aload 22 /* nextPath */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 27
        24: .line 501
            lload 25 /* timeSinceLastUsed */
            lload 11 /* usageTimestampUpdatePeriod */
            lcmp
            ifle 29
        25: .line 502
            aload 10 /* needsUpdate */
            aload 20 /* next */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        26: .line 504
            goto 29
        27: .line 505
      StackMap locals: org.eclipse.core.runtime.IPath long long
      StackMap stack:
            lload 25 /* timeSinceLastUsed */
            lload 13 /* garbageCleanupTimeout */
            lcmp
            ifle 29
        28: .line 506
            aload 9 /* garbage */
            aload 20 /* next */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // long timeSinceLastUsed
        end local 23 // long timeLastUsed
        end local 22 // org.eclipse.core.runtime.IPath nextPath
        end local 20 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        29: .line 491
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader java.util.List org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
            aload 21
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        end local 19 // org.eclipse.core.runtime.SubMonitor testMonitor
        end local 18 // java.util.List resourceFiles
        30: .line 511
            aload 17 /* reader */
            ifnull 36
            aload 17 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
            goto 36
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader
      StackMap stack: java.lang.Throwable
        31: astore 15
            aload 17 /* reader */
            ifnull 32
            aload 17 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        end local 17 // org.eclipse.jdt.internal.core.nd.IReader reader
      StackMap locals:
      StackMap stack:
        32: aload 15
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 16
            aload 15
            ifnonnull 34
            aload 16
            astore 15
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 15
            aload 16
            if_acmpeq 35
            aload 15
            aload 16
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 15
            athrow
        36: .line 513
      StackMap locals:
      StackMap stack:
            aload 8 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            aload 9 /* garbage */
            invokeinterface java.util.List.size:()I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 15 /* deleteMonitor */
        start local 15 // org.eclipse.core.runtime.SubMonitor deleteMonitor
        37: .line 514
            aload 9 /* garbage */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 40
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        38: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            astore 16 /* next */
        start local 16 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        39: .line 515
            aload 0 /* this */
            aload 16 /* next */
            aload 15 /* deleteMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.deleteResource:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 16 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        40: .line 514
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        41: .line 518
            aload 8 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            aload 10 /* needsUpdate */
            invokeinterface java.util.List.size:()I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 16 /* updateMonitor */
        start local 16 // org.eclipse.core.runtime.SubMonitor updateMonitor
        42: .line 519
            aload 10 /* needsUpdate */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 52
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long org.eclipse.core.runtime.SubMonitor org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        43: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            astore 17 /* next */
        start local 17 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        44: .line 520
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 16 /* updateMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        45: .line 522
            aload 17 /* next */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 51
        46: .line 523
            aload 17 /* next */
            lload 1 /* currentTimeMillis */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setTimeLastUsed:(J)V
        47: .line 525
            goto 51
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long org.eclipse.core.runtime.SubMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.NdResourceFile java.util.Iterator
      StackMap stack: java.lang.Throwable
        48: astore 19
        49: .line 526
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        50: .line 527
            aload 19
            athrow
        51: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        end local 17 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        52: .line 519
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex int java.util.HashSet org.eclipse.core.runtime.SubMonitor java.util.List java.util.List long long org.eclipse.core.runtime.SubMonitor org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        53: .line 530
            iload 6 /* result */
            ireturn
        end local 16 // org.eclipse.core.runtime.SubMonitor updateMonitor
        end local 15 // org.eclipse.core.runtime.SubMonitor deleteMonitor
        end local 13 // long garbageCleanupTimeout
        end local 11 // long usageTimestampUpdatePeriod
        end local 10 // java.util.List needsUpdate
        end local 9 // java.util.List garbage
        end local 8 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 7 // java.util.HashSet paths
        end local 6 // int result
        end local 5 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        end local 4 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 3 // java.util.Collection allIndexables
        end local 1 // long currentTimeMillis
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   54     0                        this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   54     1           currentTimeMillis  J
            0   54     3               allIndexables  Ljava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;
            0   54     4                     monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   54     5                       index  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            2   54     6                      result  I
            3   54     7                       paths  Ljava/util/HashSet<Lorg/eclipse/core/runtime/IPath;>;
            5   54     8                  subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            6   54     9                     garbage  Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;
            7   54    10                 needsUpdate  Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;
            8   54    11  usageTimestampUpdatePeriod  J
            9   54    13       garbageCleanupTimeout  J
           11   32    17                      reader  Lorg/eclipse/jdt/internal/core/nd/IReader;
           12   30    18               resourceFiles  Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;
           14   30    19                 testMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           16   29    20                        next  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           21   29    22                    nextPath  Lorg/eclipse/core/runtime/IPath;
           22   29    23                timeLastUsed  J
           23   29    25           timeSinceLastUsed  J
           37   54    15               deleteMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           39   40    16                        next  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           42   54    16               updateMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           44   52    17                        next  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
      Exception table:
        from    to  target  type
          11    30      31  any
          10    33      33  any
          45    48      48  any
    Signature: (JLjava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;Lorg/eclipse/core/runtime/IProgressMonitor;)I
    MethodParameters:
                   Name  Flags
      currentTimeMillis  
      allIndexables      
      monitor            

  protected void deleteResource(org.eclipse.jdt.internal.core.nd.java.NdResourceFile, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile toDelete
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 541
            aload 2 /* monitor */
            bipush 10
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 3 /* deletionMonitor */
        start local 3 // org.eclipse.core.runtime.SubMonitor deletionMonitor
         1: .line 543
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 3 /* deletionMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         2: .line 545
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 8
         3: .line 546
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.markAsInvalid:()V
         4: .line 548
            goto 8
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack: java.lang.Throwable
         5: astore 4
         6: .line 549
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
         7: .line 550
            aload 4
            athrow
         8: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
         9: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 3 /* deletionMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        10: .line 555
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifne 13
        11: .line 572
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        12: .line 556
            goto 30
        13: .line 559
      StackMap locals:
      StackMap stack:
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getTypeCount:()I
            istore 4 /* numChildren */
        start local 4 // int numChildren
        14: .line 560
            aload 3 /* deletionMonitor */
            iload 4 /* numChildren */
            iconst_1
            iadd
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        15: .line 561
            iload 4 /* numChildren */
            ifne 18
        16: .line 572
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        17: .line 562
            goto 30
        18: .line 565
      StackMap locals: int
      StackMap stack:
            aload 1 /* toDelete */
            iload 4 /* numChildren */
            iconst_1
            isub
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getType:(I)Lorg/eclipse/jdt/internal/core/nd/java/NdType;
            astore 5 /* nextDeletion */
        start local 5 // org.eclipse.jdt.internal.core.nd.java.NdType nextDeletion
        19: .line 566
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_INSERTIONS:Z
            ifeq 23
        20: .line 567
            new java.lang.StringBuilder
            dup
            ldc "Deleting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* nextDeletion */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getTypeId:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getFieldDescriptor:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 568
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* toDelete */
            getfield org.eclipse.jdt.internal.core.nd.java.NdResourceFile.address:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        22: .line 567
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        23: .line 570
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdType
      StackMap stack:
            aload 5 /* nextDeletion */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.delete:()V
        end local 5 // org.eclipse.jdt.internal.core.nd.java.NdType nextDeletion
        end local 4 // int numChildren
        24: .line 571
            goto 28
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack: java.lang.Throwable
        25: astore 6
        26: .line 572
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        27: .line 573
            aload 6
            athrow
        28: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        29: .line 552
            goto 9
        30: .line 576
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 3 /* deletionMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        31: .line 578
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 37
        32: .line 579
            aload 1 /* toDelete */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.delete:()V
        33: .line 581
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 4
        35: .line 582
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        36: .line 583
            aload 4
            athrow
        37: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        38: .line 584
            return
        end local 3 // org.eclipse.core.runtime.SubMonitor deletionMonitor
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile toDelete
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   39     1         toDelete  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            0   39     2          monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   39     3  deletionMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           14   24     4      numChildren  I
           19   24     5     nextDeletion  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
      Exception table:
        from    to  target  type
           2     5       5  any
          10    11      25  any
          13    16      25  any
          18    25      25  any
          31    34      34  any
    MethodParameters:
          Name  Flags
      toDelete  
      monitor   

  private java.util.Map<org.eclipse.core.runtime.IPath, org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult> testFingerprints(java.util.Collection<org.eclipse.core.runtime.IPath>, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/Collection;Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // java.util.Collection allIndexables
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 588
            aload 2 /* monitor */
            aload 1 /* allIndexables */
            invokeinterface java.util.Collection.size:()I
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 3 /* subMonitor */
        start local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 589
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* result */
        start local 4 // java.util.Map result
         2: .line 591
            aload 1 /* allIndexables */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Collection org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            astore 5 /* next */
        start local 5 // org.eclipse.core.runtime.IPath next
         4: .line 592
            aload 4 /* result */
            aload 5 /* next */
            aload 0 /* this */
            aload 5 /* next */
            aload 3 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.testForChanges:(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // org.eclipse.core.runtime.IPath next
         5: .line 591
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 595
            aload 4 /* result */
            areturn
        end local 4 // java.util.Map result
        end local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.Collection allIndexables
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    7     1  allIndexables  Ljava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;
            0    7     2        monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1    7     3     subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2    7     4         result  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;>;
            4    5     5           next  Lorg/eclipse/core/runtime/IPath;
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    Signature: (Ljava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;>;
    MethodParameters:
               Name  Flags
      allIndexables  
      monitor        

  private int rescanArchive(long, org.eclipse.core.runtime.IPath, java.util.List<org.eclipse.jdt.core.IJavaElement>, org.eclipse.jdt.internal.core.nd.java.FileFingerprint, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (JLorg/eclipse/core/runtime/IPath;Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;Lorg/eclipse/core/runtime/IProgressMonitor;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=17, args_size=6
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // long currentTimeMillis
        start local 3 // org.eclipse.core.runtime.IPath thePath
        start local 4 // java.util.List elementsMappingOntoLocation
        start local 5 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint fingerprint
        start local 6 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 604
            aload 6 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 7 /* subMonitor */
        start local 7 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 605
            aload 4 /* elementsMappingOntoLocation */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 606
            iconst_0
            ireturn
         3: .line 609
      StackMap locals: org.eclipse.core.runtime.SubMonitor
      StackMap stack:
            aload 4 /* elementsMappingOntoLocation */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IJavaElement
            astore 8 /* element */
        start local 8 // org.eclipse.jdt.core.IJavaElement element
         4: .line 611
            aload 3 /* thePath */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            astore 9 /* pathString */
        start local 9 // java.lang.String pathString
         5: .line 612
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 10 /* javaIndex */
        start local 10 // org.eclipse.jdt.internal.core.nd.java.JavaIndex javaIndex
         6: .line 616
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 7 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         7: .line 618
            new org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokespecial org.eclipse.jdt.internal.core.nd.java.NdResourceFile.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;)V
            astore 11 /* resourceFile */
        start local 11 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
         8: .line 619
            aload 11 /* resourceFile */
            lload 1 /* currentTimeMillis */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setTimeLastUsed:(J)V
         9: .line 620
            aload 11 /* resourceFile */
            aload 9 /* pathString */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setLocation:(Ljava/lang/String;)V
        10: .line 621
            aload 8 /* element */
        11: .line 622
            iconst_3
            invokeinterface org.eclipse.jdt.core.IJavaElement.getAncestor:(I)Lorg/eclipse/jdt/core/IJavaElement;
        12: .line 621
            checkcast org.eclipse.jdt.core.IPackageFragmentRoot
            astore 12 /* packageFragmentRoot */
        start local 12 // org.eclipse.jdt.core.IPackageFragmentRoot packageFragmentRoot
        13: .line 623
            aload 12 /* packageFragmentRoot */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getLocationForElement:(Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/core/runtime/IPath;
            astore 13 /* rootPathString */
        start local 13 // org.eclipse.core.runtime.IPath rootPathString
        14: .line 624
            aload 13 /* rootPathString */
            aload 3 /* thePath */
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 625
            aload 11 /* resourceFile */
            aload 13 /* rootPathString */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setPackageFragmentRoot:([C)V
        16: .line 627
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IPackageFragmentRoot org.eclipse.core.runtime.IPath
      StackMap stack:
            aload 0 /* this */
            aload 4 /* elementsMappingOntoLocation */
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.attachWorkspaceFilesToResource:(Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)V
        end local 13 // org.eclipse.core.runtime.IPath rootPathString
        end local 12 // org.eclipse.jdt.core.IPackageFragmentRoot packageFragmentRoot
        17: .line 628
            goto 21
        end local 11 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex
      StackMap stack: java.lang.Throwable
        18: astore 14
        19: .line 629
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        20: .line 630
            aload 14
            athrow
        start local 11 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        21: .line 629
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdResourceFile
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        22: .line 632
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 24
        23: .line 633
            new java.lang.StringBuilder
            dup
            ldc "rescanning "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* thePath */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* fingerprint */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        24: .line 635
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* result */
        start local 12 // int result
        25: .line 637
            aload 5 /* fingerprint */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.fileExists:()Z
            ifeq 46
        26: .line 638
            aload 0 /* this */
            aload 11 /* resourceFile */
            aload 8 /* element */
            aload 7 /* subMonitor */
            bipush 50
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.addElement:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;Lorg/eclipse/jdt/core/IJavaElement;Lorg/eclipse/core/runtime/IProgressMonitor;)I
            istore 12 /* result */
        27: .line 640
            goto 46
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.java.NdResourceFile int
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        28: pop
        29: .line 641
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 31
        30: .line 642
            new java.lang.StringBuilder
            dup
            ldc "the file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pathString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " cannot be indexed due to a recoverable error"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        31: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 7 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        32: .line 647
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 38
        33: .line 648
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.delete:()V
        34: .line 650
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 13
        36: .line 651
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        37: .line 652
            aload 13
            athrow
        38: .line 651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        39: .line 653
            iconst_0
            ireturn
        40: .line 654
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 13 /* e */
        start local 13 // java.lang.RuntimeException e
        41: .line 655
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 43
        42: .line 656
            new java.lang.StringBuilder
            dup
            ldc "A RuntimeException occurred while indexing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pathString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 13 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        43: .line 658
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 13 /* e */
            athrow
        end local 13 // java.lang.RuntimeException e
        44: .line 659
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.java.NdResourceFile int
      StackMap stack: java.io.FileNotFoundException
            pop
        45: .line 660
            invokestatic org.eclipse.jdt.internal.core.nd.java.FileFingerprint.getEmpty:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            astore 5 /* fingerprint */
        46: .line 663
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 48
            aload 5 /* fingerprint */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.fileExists:()Z
            ifne 48
        47: .line 664
            new java.lang.StringBuilder
            dup
            ldc "the file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pathString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was not indexed because it does not exist"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        48: .line 667
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 13 /* allResourcesWithThisPath */
        start local 13 // java.util.List allResourcesWithThisPath
        49: .line 669
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 7 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        50: .line 671
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 58
        51: .line 672
            aload 11 /* resourceFile */
            aload 5 /* fingerprint */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setFingerprint:(Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;)V
        52: .line 673
            aload 10 /* javaIndex */
            aload 9 /* pathString */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.findResourcesWithPath:(Ljava/lang/String;)Ljava/util/List;
            astore 13 /* allResourcesWithThisPath */
        53: .line 677
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.remove:(Ljava/lang/String;)V
        54: .line 679
            goto 58
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.java.NdResourceFile int java.util.List
      StackMap stack: java.lang.Throwable
        55: astore 14
        56: .line 680
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        57: .line 681
            aload 14
            athrow
        58: .line 680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        59: .line 683
            aload 7 /* subMonitor */
            bipush 40
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            aload 13 /* allResourcesWithThisPath */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 14 /* deletionMonitor */
        start local 14 // org.eclipse.core.runtime.SubMonitor deletionMonitor
        60: .line 684
            aload 13 /* allResourcesWithThisPath */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 64
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer long org.eclipse.core.runtime.IPath java.util.List org.eclipse.jdt.internal.core.nd.java.FileFingerprint org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IJavaElement java.lang.String org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.java.NdResourceFile int java.util.List org.eclipse.core.runtime.SubMonitor top java.util.Iterator
      StackMap stack:
        61: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdResourceFile
            astore 15 /* next */
        start local 15 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        62: .line 685
            aload 15 /* next */
            aload 11 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.equals:(Ljava/lang/Object;)Z
            ifne 64
        63: .line 686
            aload 0 /* this */
            aload 15 /* next */
            aload 14 /* deletionMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.deleteResource:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 15 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile next
        64: .line 684
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        65: .line 690
            iload 12 /* result */
            ireturn
        end local 14 // org.eclipse.core.runtime.SubMonitor deletionMonitor
        end local 13 // java.util.List allResourcesWithThisPath
        end local 12 // int result
        end local 11 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 10 // org.eclipse.jdt.internal.core.nd.java.JavaIndex javaIndex
        end local 9 // java.lang.String pathString
        end local 8 // org.eclipse.jdt.core.IJavaElement element
        end local 7 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 6 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 5 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint fingerprint
        end local 4 // java.util.List elementsMappingOntoLocation
        end local 3 // org.eclipse.core.runtime.IPath thePath
        end local 1 // long currentTimeMillis
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   66     0                         this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   66     1            currentTimeMillis  J
            0   66     3                      thePath  Lorg/eclipse/core/runtime/IPath;
            0   66     4  elementsMappingOntoLocation  Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;
            0   66     5                  fingerprint  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            0   66     6                      monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   66     7                   subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            4   66     8                      element  Lorg/eclipse/jdt/core/IJavaElement;
            5   66     9                   pathString  Ljava/lang/String;
            6   66    10                    javaIndex  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            8   18    11                 resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           21   66    11                 resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           13   17    12          packageFragmentRoot  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
           14   17    13               rootPathString  Lorg/eclipse/core/runtime/IPath;
           25   66    12                       result  I
           41   44    13                            e  Ljava/lang/RuntimeException;
           49   66    13     allResourcesWithThisPath  Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;>;
           60   66    14              deletionMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           62   64    15                         next  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
      Exception table:
        from    to  target  type
           7    18      18  any
          25    27      28  Class org.eclipse.jdt.core.JavaModelException
          32    35      35  any
          25    27      40  Class java.lang.RuntimeException
          25    27      44  Class java.io.FileNotFoundException
          50    55      55  any
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    Signature: (JLorg/eclipse/core/runtime/IPath;Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;Lorg/eclipse/core/runtime/IProgressMonitor;)I
    MethodParameters:
                             Name  Flags
      currentTimeMillis            
      thePath                      
      elementsMappingOntoLocation  
      fingerprint                  
      monitor                      

  private void attachWorkspaceFilesToResource(java.util.List<org.eclipse.jdt.core.IJavaElement>, org.eclipse.jdt.internal.core.nd.java.NdResourceFile);
    descriptor: (Ljava/util/List;Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // java.util.List elementsMappingOntoLocation
        start local 2 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
         0: .line 695
            aload 1 /* elementsMappingOntoLocation */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.List org.eclipse.jdt.internal.core.nd.java.NdResourceFile top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IJavaElement
            astore 3 /* next */
        start local 3 // org.eclipse.jdt.core.IJavaElement next
         2: .line 696
            aload 3 /* next */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getResource:()Lorg/eclipse/core/resources/IResource;
            astore 5 /* nextResource */
        start local 5 // org.eclipse.core.resources.IResource nextResource
         3: .line 697
            aload 5 /* nextResource */
            ifnull 7
         4: .line 698
            new org.eclipse.jdt.internal.core.nd.java.NdWorkspaceLocation
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 2 /* resourceFile */
         5: .line 699
            aload 5 /* nextResource */
            invokeinterface org.eclipse.core.resources.IResource.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
         6: .line 698
            invokespecial org.eclipse.jdt.internal.core.nd.java.NdWorkspaceLocation.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;[C)V
        end local 5 // org.eclipse.core.resources.IResource nextResource
        end local 3 // org.eclipse.jdt.core.IJavaElement next
         7: .line 695
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 702
            return
        end local 2 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 1 // java.util.List elementsMappingOntoLocation
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    9     0                         this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    9     1  elementsMappingOntoLocation  Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;
            0    9     2                 resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            2    7     3                         next  Lorg/eclipse/jdt/core/IJavaElement;
            3    7     5                 nextResource  Lorg/eclipse/core/resources/IResource;
    Signature: (Ljava/util/List<Lorg/eclipse/jdt/core/IJavaElement;>;Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)V
    MethodParameters:
                             Name  Flags
      elementsMappingOntoLocation  
      resourceFile                 

  private int addElement(org.eclipse.jdt.internal.core.nd.java.NdResourceFile, org.eclipse.jdt.core.IJavaElement, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;Lorg/eclipse/jdt/core/IJavaElement;Lorg/eclipse/core/runtime/IProgressMonitor;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=23, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        start local 2 // org.eclipse.jdt.core.IJavaElement element
        start local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 710
            aload 3 /* monitor */
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/SubMonitor;
            astore 4 /* subMonitor */
        start local 4 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 712
            aload 2 /* element */
            instanceof org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            ifeq 102
         2: .line 713
            aload 2 /* element */
            checkcast org.eclipse.jdt.internal.core.JarPackageFragmentRoot
            astore 5 /* jarRoot */
        start local 5 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot jarRoot
         3: .line 715
            aload 5 /* jarRoot */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            astore 6 /* workspacePath */
        start local 6 // org.eclipse.core.runtime.IPath workspacePath
         4: .line 716
            aload 5 /* jarRoot */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getLocationForElement:(Lorg/eclipse/jdt/core/IJavaElement;)Lorg/eclipse/core/runtime/IPath;
            astore 7 /* location */
        start local 7 // org.eclipse.core.runtime.IPath location
         5: .line 718
            iconst_0
            istore 8 /* classesIndexed */
        start local 8 // int classesIndexed
         6: .line 719
            aconst_null
            astore 9
            aconst_null
            astore 10
         7: new java.util.zip.ZipFile
            dup
            aload 5 /* jarRoot */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getLocalFile:(Lorg/eclipse/core/runtime/IPath;)Ljava/io/File;
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 11 /* zipFile */
        start local 11 // java.util.zip.ZipFile zipFile
         8: .line 721
            getstatic org.eclipse.jdt.internal.core.JavaModelManager.throwIoExceptionsInGetZipFile:Z
            ifeq 12
         9: .line 722
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 11
        10: .line 723
            ldc "Throwing simulated IOException for error handling test case"
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        11: .line 725
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack:
            new java.io.IOException
            dup
            invokespecial java.io.IOException.<init>:()V
            athrow
        12: .line 727
      StackMap locals:
      StackMap stack:
            aload 4 /* subMonitor */
            aload 11 /* zipFile */
            invokevirtual java.util.zip.ZipFile.size:()I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        13: .line 730
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 4 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        14: .line 732
            aload 1 /* resourceFile */
            aload 11 /* zipFile */
            invokevirtual java.util.zip.ZipFile.size:()I
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.allocateZipEntries:(I)V
        15: .line 733
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 12
        17: .line 734
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        18: .line 735
            aload 12
            athrow
        19: .line 734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        20: .line 736
            aload 11 /* zipFile */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 12 /* e */
        start local 12 // java.util.Enumeration e
        21: goto 75
        22: .line 737
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 4 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            iconst_2
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 13 /* nextEntry */
        start local 13 // org.eclipse.core.runtime.SubMonitor nextEntry
        23: .line 738
            aload 12 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 14 /* member */
        start local 14 // java.util.zip.ZipEntry member
        24: .line 739
            aload 14 /* member */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 15 /* fileName */
        start local 15 // java.lang.String fileName
        25: .line 740
            aload 15 /* fileName */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.isClassFileName:(Ljava/lang/String;)Z
            istore 16 /* classFileName */
        start local 16 // boolean classFileName
        26: .line 741
            aload 14 /* member */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifne 27
            iload 16 /* classFileName */
            ifne 49
        27: .line 742
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.Enumeration org.eclipse.core.runtime.SubMonitor java.util.zip.ZipEntry java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 4 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        28: .line 744
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 48
        29: .line 745
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_INSERTIONS:Z
            ifeq 33
        30: .line 746
            new java.lang.StringBuilder
            dup
            ldc "Inserting non-class file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* fileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " into "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 747
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* resourceFile */
            getfield org.eclipse.jdt.internal.core.nd.java.NdResourceFile.address:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        32: .line 746
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        33: .line 749
      StackMap locals:
      StackMap stack:
            aload 1 /* resourceFile */
            aload 15 /* fileName */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.addZipEntry:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/java/NdZipEntry;
            pop
        34: .line 751
            aload 15 /* fileName */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        35: .line 752
            aconst_null
            astore 17
            aconst_null
            astore 18
        36: aload 11 /* zipFile */
            aload 14 /* member */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 19 /* inputStream */
        start local 19 // java.io.InputStream inputStream
        37: .line 753
            aload 19 /* inputStream */
            iconst_m1
            ldc "UTF-8"
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsCharArray:(Ljava/io/InputStream;ILjava/lang/String;)[C
            astore 20 /* chars */
        start local 20 // char[] chars
        38: .line 755
            aload 1 /* resourceFile */
            aload 20 /* chars */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setManifestContent:([C)V
        end local 20 // char[] chars
        39: .line 756
            aload 19 /* inputStream */
            ifnull 48
            aload 19 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
            goto 48
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.Enumeration org.eclipse.core.runtime.SubMonitor java.util.zip.ZipEntry java.lang.String int java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        40: astore 17
            aload 19 /* inputStream */
            ifnull 41
            aload 19 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
        end local 19 // java.io.InputStream inputStream
      StackMap locals:
      StackMap stack:
        41: aload 17
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 18
            aload 17
            ifnonnull 43
            aload 18
            astore 17
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 17
            aload 18
            if_acmpeq 44
            aload 17
            aload 18
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 17
            athrow
        45: .line 759
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.Enumeration org.eclipse.core.runtime.SubMonitor java.util.zip.ZipEntry java.lang.String int
      StackMap stack: java.lang.Throwable
            astore 21
        46: .line 760
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        47: .line 761
            aload 21
            athrow
        48: .line 760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        49: .line 763
      StackMap locals:
      StackMap stack:
            aload 14 /* member */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 51
        50: .line 766
            goto 75
        51: .line 768
      StackMap locals:
      StackMap stack:
            aload 13 /* nextEntry */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        52: .line 770
            iload 16 /* classFileName */
            ifeq 75
        53: .line 771
            aload 15 /* fileName */
            iconst_0
        54: .line 772
            aload 15 /* fileName */
            invokevirtual java.lang.String.length:()I
            ldc ".class"
            invokevirtual java.lang.String.length:()I
            isub
        55: .line 771
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 17 /* binaryName */
        start local 17 // java.lang.String binaryName
        56: .line 773
            aload 17 /* binaryName */
            invokevirtual java.lang.String.toCharArray:()[C
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaNames.binaryNameToFieldDescriptor:([C)[C
            astore 18 /* fieldDescriptor */
        start local 18 // char[] fieldDescriptor
        57: .line 774
            new java.lang.StringBuilder
            dup
            aload 5 /* jarRoot */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getHandleIdentifier:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 124
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        58: .line 775
            aload 17 /* binaryName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        59: .line 774
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 19 /* indexPath */
        start local 19 // java.lang.String indexPath
        60: .line 776
            new org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor
            dup
            aload 7 /* location */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
        61: .line 777
            aload 18 /* fieldDescriptor */
            aload 6 /* workspacePath */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            aload 19 /* indexPath */
            invokevirtual java.lang.String.toCharArray:()[C
        62: .line 776
            invokespecial org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.<init>:([C[C[C[C)V
            astore 20 /* descriptor */
        start local 20 // org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor descriptor
        63: .line 779
            aload 14 /* member */
        64: .line 780
            aload 11 /* zipFile */
        65: .line 779
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent:(Ljava/util/zip/ZipEntry;Ljava/util/zip/ZipFile;)[B
            astore 21 /* contents */
        start local 21 // byte[] contents
        66: .line 781
            new org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            dup
            aload 21 /* contents */
            aload 20 /* descriptor */
            getfield org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.indexPath:[C
            iconst_1
            invokespecial org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>:([B[CZ)V
            astore 22 /* classFileReader */
        start local 22 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
        67: .line 782
            aload 0 /* this */
            aload 1 /* resourceFile */
            aload 20 /* descriptor */
            getfield org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.fieldDescriptor:[C
            aload 20 /* descriptor */
            getfield org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.indexPath:[C
        68: .line 783
            aload 22 /* classFileReader */
            aload 13 /* nextEntry */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
        69: .line 782
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.addClassToIndex:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;[C[CLorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;Lorg/eclipse/core/runtime/IProgressMonitor;)Z
        70: .line 783
            ifeq 75
        71: .line 784
            iinc 8 /* classesIndexed */ 1
        end local 22 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
        end local 21 // byte[] contents
        72: .line 786
            goto 75
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.Enumeration org.eclipse.core.runtime.SubMonitor java.util.zip.ZipEntry java.lang.String int java.lang.String char[] java.lang.String org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor
      StackMap stack: java.lang.Exception
        73: astore 21 /* exception */
        start local 21 // java.lang.Exception exception
        74: .line 787
            new java.lang.StringBuilder
            dup
            ldc "Unable to index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 20 /* descriptor */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 21 /* exception */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 21 // java.lang.Exception exception
        end local 20 // org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor descriptor
        end local 19 // java.lang.String indexPath
        end local 18 // char[] fieldDescriptor
        end local 17 // java.lang.String binaryName
        end local 16 // boolean classFileName
        end local 15 // java.lang.String fileName
        end local 14 // java.util.zip.ZipEntry member
        end local 13 // org.eclipse.core.runtime.SubMonitor nextEntry
        75: .line 736
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile java.util.Enumeration
      StackMap stack:
            aload 12 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 22
        end local 12 // java.util.Enumeration e
        76: .line 791
            aload 11 /* zipFile */
            ifnull 99
            aload 11 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 99
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
        77: astore 9
            aload 11 /* zipFile */
            ifnull 78
            aload 11 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 11 // java.util.zip.ZipFile zipFile
      StackMap locals:
      StackMap stack:
        78: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        79: astore 10
            aload 9
            ifnonnull 80
            aload 10
            astore 9
            goto 81
      StackMap locals:
      StackMap stack:
        80: aload 9
            aload 10
            if_acmpeq 81
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        81: aload 9
            athrow
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int
      StackMap stack: java.util.zip.ZipException
        82: astore 9 /* e */
        start local 9 // java.util.zip.ZipException e
        83: .line 792
            new java.lang.StringBuilder
            dup
            ldc "The zip file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* jarRoot */
            invokevirtual org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " was corrupt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 9 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        84: .line 794
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aconst_null
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        85: .line 796
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 91
        86: .line 797
            aload 1 /* resourceFile */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setFlags:(I)V
        87: .line 799
            goto 91
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int java.util.zip.ZipException
      StackMap stack: java.lang.Throwable
        88: astore 10
        89: .line 800
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        90: .line 801
            aload 10
            athrow
        91: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        end local 9 // java.util.zip.ZipException e
        92: goto 99
        93: .line 802
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.JarPackageFragmentRoot org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IPath int
      StackMap stack: java.io.FileNotFoundException
            astore 9 /* e */
        start local 9 // java.io.FileNotFoundException e
        94: .line 803
            aload 9 /* e */
            athrow
        end local 9 // java.io.FileNotFoundException e
        95: .line 804
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 9 /* ioException */
        start local 9 // java.io.IOException ioException
        96: .line 805
            new org.eclipse.jdt.core.JavaModelException
            dup
            aload 9 /* ioException */
            sipush 985
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Ljava/lang/Throwable;I)V
            athrow
        end local 9 // java.io.IOException ioException
        97: .line 806
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.CoreException
            astore 9 /* coreException */
        start local 9 // org.eclipse.core.runtime.CoreException coreException
        98: .line 807
            new org.eclipse.jdt.core.JavaModelException
            dup
            aload 9 /* coreException */
            invokespecial org.eclipse.jdt.core.JavaModelException.<init>:(Lorg/eclipse/core/runtime/CoreException;)V
            athrow
        end local 9 // org.eclipse.core.runtime.CoreException coreException
        99: .line 810
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 101
            iload 8 /* classesIndexed */
            ifne 101
       100: .line 811
            new java.lang.StringBuilder
            dup
            ldc "The path "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* element */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " contained no class files"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
       101: .line 813
      StackMap locals:
      StackMap stack:
            iload 8 /* classesIndexed */
            ireturn
        end local 8 // int classesIndexed
        end local 7 // org.eclipse.core.runtime.IPath location
        end local 6 // org.eclipse.core.runtime.IPath workspacePath
        end local 5 // org.eclipse.jdt.internal.core.JarPackageFragmentRoot jarRoot
       102: .line 814
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack:
            aload 2 /* element */
            instanceof org.eclipse.jdt.core.IOrdinaryClassFile
            ifeq 118
       103: .line 815
            aload 2 /* element */
            checkcast org.eclipse.jdt.core.IOrdinaryClassFile
            astore 5 /* classFile */
        start local 5 // org.eclipse.jdt.core.IOrdinaryClassFile classFile
       104: .line 817
            aload 4 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* iterationMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor iterationMonitor
       105: .line 818
            aload 5 /* classFile */
            invokestatic org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeFactory.createDescriptor:(Lorg/eclipse/jdt/core/IOrdinaryClassFile;)Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryTypeDescriptor;
            astore 7 /* descriptor */
        start local 7 // org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor descriptor
       106: .line 820
            iconst_0
            istore 8 /* indexed */
        start local 8 // boolean indexed
       107: .line 822
            aload 7 /* descriptor */
            iconst_1
            iconst_0
            invokestatic org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeFactory.rawReadTypeTestForExists:(Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryTypeDescriptor;ZZ)Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            astore 9 /* classFileReader */
        start local 9 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
       108: .line 823
            aload 9 /* classFileReader */
            ifnull 115
       109: .line 824
            aload 0 /* this */
            aload 1 /* resourceFile */
            aload 7 /* descriptor */
            getfield org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.fieldDescriptor:[C
            aload 7 /* descriptor */
            getfield org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor.indexPath:[C
       110: .line 825
            aload 9 /* classFileReader */
            aload 6 /* iterationMonitor */
       111: .line 824
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.addClassToIndex:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;[C[CLorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;Lorg/eclipse/core/runtime/IProgressMonitor;)Z
            istore 8 /* indexed */
        end local 9 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classFileReader
       112: .line 827
            goto 115
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IOrdinaryClassFile org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor int
      StackMap stack: java.lang.Exception
       113: astore 9 /* e */
        start local 9 // java.lang.Exception e
       114: .line 828
            new java.lang.StringBuilder
            dup
            ldc "Unable to index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* classFile */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 9 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Exception e
       115: .line 831
      StackMap locals:
      StackMap stack:
            iload 8 /* indexed */
            ifeq 116
            iconst_1
            goto 117
      StackMap locals:
      StackMap stack:
       116: iconst_0
      StackMap locals:
      StackMap stack: int
       117: ireturn
        end local 8 // boolean indexed
        end local 7 // org.eclipse.jdt.internal.core.nd.java.model.BinaryTypeDescriptor descriptor
        end local 6 // org.eclipse.core.runtime.SubMonitor iterationMonitor
        end local 5 // org.eclipse.jdt.core.IOrdinaryClassFile classFile
       118: .line 833
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.core.IJavaElement org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unable to index elements of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
       119: .line 834
            iconst_0
            ireturn
        end local 4 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 2 // org.eclipse.jdt.core.IJavaElement element
        end local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  120     0              this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0  120     1      resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            0  120     2           element  Lorg/eclipse/jdt/core/IJavaElement;
            0  120     3           monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1  120     4        subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            3  102     5           jarRoot  Lorg/eclipse/jdt/internal/core/JarPackageFragmentRoot;
            4  102     6     workspacePath  Lorg/eclipse/core/runtime/IPath;
            5  102     7          location  Lorg/eclipse/core/runtime/IPath;
            6  102     8    classesIndexed  I
            8   78    11           zipFile  Ljava/util/zip/ZipFile;
           21   76    12                 e  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
           23   75    13         nextEntry  Lorg/eclipse/core/runtime/SubMonitor;
           24   75    14            member  Ljava/util/zip/ZipEntry;
           25   75    15          fileName  Ljava/lang/String;
           26   75    16     classFileName  Z
           37   41    19       inputStream  Ljava/io/InputStream;
           38   39    20             chars  [C
           56   75    17        binaryName  Ljava/lang/String;
           57   75    18   fieldDescriptor  [C
           60   75    19         indexPath  Ljava/lang/String;
           63   75    20        descriptor  Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryTypeDescriptor;
           66   72    21          contents  [B
           67   72    22   classFileReader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
           74   75    21         exception  Ljava/lang/Exception;
           83   92     9                 e  Ljava/util/zip/ZipException;
           94   95     9                 e  Ljava/io/FileNotFoundException;
           96   97     9       ioException  Ljava/io/IOException;
           98   99     9     coreException  Lorg/eclipse/core/runtime/CoreException;
          104  118     5         classFile  Lorg/eclipse/jdt/core/IOrdinaryClassFile;
          105  118     6  iterationMonitor  Lorg/eclipse/core/runtime/SubMonitor;
          106  118     7        descriptor  Lorg/eclipse/jdt/internal/core/nd/java/model/BinaryTypeDescriptor;
          107  118     8           indexed  Z
          108  112     9   classFileReader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
          114  115     9                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          14    16      16  any
          37    39      40  any
          36    42      42  any
          28    45      45  any
          63    72      73  Class org.eclipse.core.runtime.CoreException
          63    72      73  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
           8    76      77  any
           7    79      79  any
           6    82      82  Class java.util.zip.ZipException
          85    88      88  any
           6    82      93  Class java.io.FileNotFoundException
           6    82      95  Class java.io.IOException
           6    82      97  Class org.eclipse.core.runtime.CoreException
         107   112     113  Class org.eclipse.core.runtime.CoreException
         107   112     113  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException, java.io.FileNotFoundException
    MethodParameters:
              Name  Flags
      resourceFile  
      element       
      monitor       

  private boolean addClassToIndex(org.eclipse.jdt.internal.core.nd.java.NdResourceFile, char[], char[], org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;[C[CLorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;Lorg/eclipse/core/runtime/IProgressMonitor;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=19, args_size=6
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        start local 2 // char[] fieldDescriptor
        start local 3 // char[] indexPath
        start local 4 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader binaryType
        start local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 840
            aload 5 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* subMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 841
            new org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter
            dup
            aload 1 /* resourceFile */
            invokespecial org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter.<init>:(Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;)V
            astore 7 /* converter */
        start local 7 // org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter converter
         2: .line 843
            iconst_0
            istore 8 /* indexed */
        start local 8 // boolean indexed
         3: .line 844
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 6 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         4: .line 846
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 16
         5: .line 847
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_INSERTIONS:Z
            ifeq 9
         6: .line 848
            new java.lang.StringBuilder
            dup
            ldc "Inserting "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 2 /* fieldDescriptor */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " into "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 849
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getLocation:()Lorg/eclipse/jdt/internal/core/nd/db/IString;
            invokeinterface org.eclipse.jdt.internal.core.nd.db.IString.getString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* resourceFile */
            getfield org.eclipse.jdt.internal.core.nd.java.NdResourceFile.address:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         8: .line 848
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
         9: .line 851
      StackMap locals: org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter int
      StackMap stack:
            aload 7 /* converter */
            aload 4 /* binaryType */
            aload 2 /* fieldDescriptor */
            aload 6 /* subMonitor */
            bipush 45
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter.addType:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;[CLorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/java/NdType;
            pop
        10: .line 852
            aload 1 /* resourceFile */
            aload 4 /* binaryType */
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.getVersion:()J
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setJdkLevel:(J)V
        11: .line 853
            iconst_1
            istore 8 /* indexed */
        12: .line 855
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 9
        14: .line 856
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        15: .line 857
            aload 9
            athrow
        16: .line 856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        17: .line 859
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_SELFTEST:Z
            ifeq 46
            iload 8 /* indexed */
            ifeq 46
        18: .line 862
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 9 /* index */
        start local 9 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        19: .line 863
            aconst_null
            astore 10
            aconst_null
            astore 11
        20: aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            astore 12 /* readLock */
        start local 12 // org.eclipse.jdt.internal.core.nd.IReader readLock
        21: .line 864
            aload 9 /* index */
            aload 2 /* fieldDescriptor */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.findType:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 13 /* typeId */
        start local 13 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
        22: .line 865
            aconst_null
            astore 14 /* targetType */
        start local 14 // org.eclipse.jdt.internal.core.nd.java.NdType targetType
        23: .line 866
            aload 13 /* typeId */
            ifnull 32
        24: .line 867
            aload 13 /* typeId */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getTypes:()Ljava/util/List;
            astore 15 /* implementations */
        start local 15 // java.util.List implementations
        25: .line 868
            aload 15 /* implementations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 31
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile char[] char[] org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter int org.eclipse.jdt.internal.core.nd.java.JavaIndex java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.jdt.internal.core.nd.java.NdTypeId org.eclipse.jdt.internal.core.nd.java.NdType java.util.List top java.util.Iterator
      StackMap stack:
        26: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdType
            astore 16 /* nextType */
        start local 16 // org.eclipse.jdt.internal.core.nd.java.NdType nextType
        27: .line 869
            aload 16 /* nextType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getResourceFile:()Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            astore 18 /* nextResourceFile */
        start local 18 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile nextResourceFile
        28: .line 870
            aload 18 /* nextResourceFile */
            aload 1 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 871
            aload 16 /* nextType */
            astore 14 /* targetType */
        30: .line 872
            goto 32
        end local 18 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile nextResourceFile
        end local 16 // org.eclipse.jdt.internal.core.nd.java.NdType nextType
        31: .line 868
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 15 // java.util.List implementations
        32: .line 877
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile char[] char[] org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter int org.eclipse.jdt.internal.core.nd.java.JavaIndex java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.jdt.internal.core.nd.java.NdTypeId org.eclipse.jdt.internal.core.nd.java.NdType
      StackMap stack:
            aload 14 /* targetType */
            ifnull 36
        33: .line 878
            new org.eclipse.jdt.internal.core.nd.java.model.IndexBinaryType
            dup
            aload 14 /* targetType */
            invokestatic org.eclipse.jdt.internal.core.nd.java.TypeRef.create:(Lorg/eclipse/jdt/internal/core/nd/java/NdType;)Lorg/eclipse/jdt/internal/core/nd/java/TypeRef;
            aload 3 /* indexPath */
            invokespecial org.eclipse.jdt.internal.core.nd.java.model.IndexBinaryType.<init>:(Lorg/eclipse/jdt/internal/core/nd/java/TypeRef;[C)V
            astore 15 /* actualType */
        start local 15 // org.eclipse.jdt.internal.core.nd.java.model.IndexBinaryType actualType
        34: .line 879
            aload 4 /* binaryType */
            aload 15 /* actualType */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.IndexTester.testType:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
        end local 15 // org.eclipse.jdt.internal.core.nd.java.model.IndexBinaryType actualType
        35: .line 880
            goto 38
        36: .line 882
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Could not find class in index immediately after indexing it: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 3 /* indexPath */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 881
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        end local 14 // org.eclipse.jdt.internal.core.nd.java.NdType targetType
        end local 13 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
        38: .line 884
      StackMap locals:
      StackMap stack:
            aload 12 /* readLock */
            ifnull 46
            aload 12 /* readLock */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 10
            aload 12 /* readLock */
            ifnull 40
            aload 12 /* readLock */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        end local 12 // org.eclipse.jdt.internal.core.nd.IReader readLock
      StackMap locals:
      StackMap stack:
        40: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: astore 11
            aload 10
            ifnonnull 42
            aload 11
            astore 10
            goto 43
      StackMap locals:
      StackMap stack:
        42: aload 10
            aload 11
            if_acmpeq 43
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        43: aload 10
            athrow
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.java.NdResourceFile char[] char[] org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter int org.eclipse.jdt.internal.core.nd.java.JavaIndex
      StackMap stack: java.lang.RuntimeException
        44: astore 10 /* e */
        start local 10 // java.lang.RuntimeException e
        45: .line 885
            new java.lang.StringBuilder
            dup
            ldc "Error during indexing: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 3 /* indexPath */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 10 // java.lang.RuntimeException e
        end local 9 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        46: .line 888
      StackMap locals:
      StackMap stack:
            iload 8 /* indexed */
            ireturn
        end local 8 // boolean indexed
        end local 7 // org.eclipse.jdt.internal.core.nd.indexer.ClassFileToIndexConverter converter
        end local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 4 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader binaryType
        end local 3 // char[] indexPath
        end local 2 // char[] fieldDescriptor
        end local 1 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   47     0              this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   47     1      resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            0   47     2   fieldDescriptor  [C
            0   47     3         indexPath  [C
            0   47     4        binaryType  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            0   47     5           monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   47     6        subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   47     7         converter  Lorg/eclipse/jdt/internal/core/nd/indexer/ClassFileToIndexConverter;
            3   47     8           indexed  Z
           19   46     9             index  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
           21   40    12          readLock  Lorg/eclipse/jdt/internal/core/nd/IReader;
           22   38    13            typeId  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
           23   38    14        targetType  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
           25   32    15   implementations  Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/java/NdType;>;
           27   31    16          nextType  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
           28   31    18  nextResourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
           34   35    15        actualType  Lorg/eclipse/jdt/internal/core/nd/java/model/IndexBinaryType;
           45   46    10                 e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           4    13      13  any
          21    38      39  any
          20    41      41  any
          19    44      44  Class java.lang.RuntimeException
    Exceptions:
      throws org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException, org.eclipse.core.runtime.CoreException
    MethodParameters:
                 Name  Flags
      resourceFile     
      fieldDescriptor  
      indexPath        
      binaryType       
      monitor          

  private java.util.List<org.eclipse.core.runtime.IPath> getIndexablesThatHaveChanged(java.util.Collection<org.eclipse.core.runtime.IPath>, java.util.Map<org.eclipse.core.runtime.IPath, org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult>);
    descriptor: (Ljava/util/Collection;Ljava/util/Map;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // java.util.Collection indexables
        start local 2 // java.util.Map fingerprints
         0: .line 897
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* indexablesWithChanges */
        start local 3 // java.util.List indexablesWithChanges
         1: .line 898
            aload 1 /* indexables */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer java.util.Collection java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.core.runtime.IPath
            astore 4 /* next */
        start local 4 // org.eclipse.core.runtime.IPath next
         3: .line 899
            aload 2 /* fingerprints */
            aload 4 /* next */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult
            astore 6 /* testResult */
        start local 6 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult testResult
         4: .line 901
            aload 6 /* testResult */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.matches:()Z
            ifne 6
         5: .line 902
            aload 3 /* indexablesWithChanges */
            aload 4 /* next */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult testResult
        end local 4 // org.eclipse.core.runtime.IPath next
         6: .line 898
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 905
            aload 3 /* indexablesWithChanges */
            areturn
        end local 3 // java.util.List indexablesWithChanges
        end local 2 // java.util.Map fingerprints
        end local 1 // java.util.Collection indexables
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    8     1             indexables  Ljava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;
            0    8     2           fingerprints  Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;>;
            1    8     3  indexablesWithChanges  Ljava/util/List<Lorg/eclipse/core/runtime/IPath;>;
            3    6     4                   next  Lorg/eclipse/core/runtime/IPath;
            4    6     6             testResult  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
    Signature: (Ljava/util/Collection<Lorg/eclipse/core/runtime/IPath;>;Ljava/util/Map<Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;>;)Ljava/util/List<Lorg/eclipse/core/runtime/IPath;>;
    MethodParameters:
              Name  Flags
      indexables    
      fingerprints  

  private org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult testForChanges(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IPath thePath
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 909
            aload 2 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 3 /* subMonitor */
        start local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 910
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 4 /* javaIndex */
        start local 4 // org.eclipse.jdt.internal.core.nd.java.JavaIndex javaIndex
         2: .line 911
            aload 1 /* thePath */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            astore 5 /* pathString */
        start local 5 // java.lang.String pathString
         3: .line 913
            aload 3 /* subMonitor */
            bipush 50
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
         4: .line 914
            aconst_null
            astore 6 /* resourceFile */
        start local 6 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
         5: .line 915
            invokestatic org.eclipse.jdt.internal.core.nd.java.FileFingerprint.getEmpty:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            astore 7 /* fingerprint */
        start local 7 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint fingerprint
         6: .line 916
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            pop
         7: .line 918
            aload 4 /* javaIndex */
            aload 5 /* pathString */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getResourceFile:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            astore 6 /* resourceFile */
         8: .line 920
            aload 6 /* resourceFile */
            ifnull 14
         9: .line 921
            aload 6 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.getFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            astore 7 /* fingerprint */
        10: .line 923
            goto 14
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IPath org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex java.lang.String org.eclipse.jdt.internal.core.nd.java.NdResourceFile org.eclipse.jdt.internal.core.nd.java.FileFingerprint
      StackMap stack: java.lang.Throwable
        11: astore 8
        12: .line 924
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseReadLock:()V
        13: .line 925
            aload 8
            athrow
        14: .line 924
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseReadLock:()V
        15: .line 927
            aload 7 /* fingerprint */
            aload 1 /* thePath */
            aload 3 /* subMonitor */
            bipush 40
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint.test:(Lorg/eclipse/core/runtime/IPath;Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
            astore 8 /* result */
        start local 8 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult result
        16: .line 930
            aload 6 /* resourceFile */
            ifnull 28
            aload 8 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.matches:()Z
            ifeq 28
            aload 8 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.needsNewFingerprint:()Z
            ifeq 28
        17: .line 931
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 3 /* subMonitor */
            bipush 10
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        18: .line 933
            aload 6 /* resourceFile */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.isInIndex:()Z
            ifeq 27
        19: .line 934
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG:Z
            ifeq 22
        20: .line 936
            new java.lang.StringBuilder
            dup
            ldc "Writing updated fingerprint for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* thePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.getNewFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 935
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
        22: .line 938
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult
      StackMap stack:
            aload 6 /* resourceFile */
            aload 8 /* result */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult.getNewFingerprint:()Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdResourceFile.setFingerprint:(Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;)V
        23: .line 940
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 9
        25: .line 941
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        26: .line 942
            aload 9
            athrow
        27: .line 941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        28: .line 945
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult result
        end local 7 // org.eclipse.jdt.internal.core.nd.java.FileFingerprint fingerprint
        end local 6 // org.eclipse.jdt.internal.core.nd.java.NdResourceFile resourceFile
        end local 5 // java.lang.String pathString
        end local 4 // org.eclipse.jdt.internal.core.nd.java.JavaIndex javaIndex
        end local 3 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // org.eclipse.core.runtime.IPath thePath
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   29     1       thePath  Lorg/eclipse/core/runtime/IPath;
            0   29     2       monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   29     3    subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   29     4     javaIndex  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            3   29     5    pathString  Ljava/lang/String;
            5   29     6  resourceFile  Lorg/eclipse/jdt/internal/core/nd/java/NdResourceFile;
            6   29     7   fingerprint  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint;
           16   29     8        result  Lorg/eclipse/jdt/internal/core/nd/java/FileFingerprint$FingerprintTestResult;
      Exception table:
        from    to  target  type
           7    11      11  any
          18    24      24  any
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
         Name  Flags
      thePath  
      monitor  

  public void <init>(org.eclipse.jdt.internal.core.nd.Nd, org.eclipse.core.resources.IWorkspaceRoot);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;Lorg/eclipse/core/resources/IWorkspaceRoot;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.Nd toPopulate
        start local 2 // org.eclipse.core.resources.IWorkspaceRoot workspaceRoot
         0: .line 948
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 125
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.enableAutomaticIndexing:Z
         2: .line 130
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
         3: .line 131
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.automaticIndexingMutex:Ljava/lang/Object;
         4: .line 136
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listenersMutex:Ljava/lang/Object;
         5: .line 140
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
         6: .line 142
            aload 0 /* this */
            new org.eclipse.core.runtime.jobs.JobGroup
            dup
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Messages.Indexer_updating_index_job_name:Ljava/lang/String;
            iconst_1
            iconst_1
            invokespecial org.eclipse.core.runtime.jobs.JobGroup.<init>:(Ljava/lang/String;II)V
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.group:Lorg/eclipse/core/runtime/jobs/JobGroup;
         7: .line 144
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Messages.Indexer_updating_index_job_name:Ljava/lang/String;
            aload 0 /* this */
            invokedynamic run(Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;)Lorg/eclipse/core/runtime/ICoreRunnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/eclipse/core/runtime/IProgressMonitor;)V
                  org/eclipse/jdt/internal/core/nd/indexer/Indexer.lambda$0(Lorg/eclipse/core/runtime/IProgressMonitor;)V (7)
                  (Lorg/eclipse/core/runtime/IProgressMonitor;)V
            invokestatic org.eclipse.core.runtime.jobs.Job.create:(Ljava/lang/String;Lorg/eclipse/core/runtime/ICoreRunnable;)Lorg/eclipse/core/runtime/jobs/Job;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
         8: .line 155
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Messages.Indexer_updating_index_job_name:Ljava/lang/String;
            aload 0 /* this */
            invokedynamic run(Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;)Lorg/eclipse/core/runtime/ICoreRunnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/eclipse/core/runtime/IProgressMonitor;)V
                  org/eclipse/jdt/internal/core/nd/indexer/Indexer.lambda$1(Lorg/eclipse/core/runtime/IProgressMonitor;)V (7)
                  (Lorg/eclipse/core/runtime/IProgressMonitor;)V
            invokestatic org.eclipse.core.runtime.jobs.Job.create:(Ljava/lang/String;Lorg/eclipse/core/runtime/ICoreRunnable;)Lorg/eclipse/core/runtime/jobs/Job;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndexJob:Lorg/eclipse/core/runtime/jobs/Job;
         9: .line 949
            aload 0 /* this */
            aload 1 /* toPopulate */
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
        10: .line 950
            aload 0 /* this */
            aload 2 /* workspaceRoot */
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.root:Lorg/eclipse/core/resources/IWorkspaceRoot;
        11: .line 951
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            iconst_1
            invokevirtual org.eclipse.core.runtime.jobs.Job.setSystem:(Z)V
        12: .line 952
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.group:Lorg/eclipse/core/runtime/jobs/JobGroup;
            invokevirtual org.eclipse.core.runtime.jobs.Job.setJobGroup:(Lorg/eclipse/core/runtime/jobs/JobGroup;)V
        13: .line 953
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndexJob:Lorg/eclipse/core/runtime/jobs/Job;
            iconst_1
            invokevirtual org.eclipse.core.runtime.jobs.Job.setSystem:(Z)V
        14: .line 954
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndexJob:Lorg/eclipse/core/runtime/jobs/Job;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.group:Lorg/eclipse/core/runtime/jobs/JobGroup;
            invokevirtual org.eclipse.core.runtime.jobs.Job.setJobGroup:(Lorg/eclipse/core/runtime/jobs/JobGroup;)V
        15: .line 955
            aload 0 /* this */
            aload 1 /* toPopulate */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.getCache:(Lorg/eclipse/jdt/internal/core/nd/Nd;)Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
        16: .line 956
            return
        end local 2 // org.eclipse.core.resources.IWorkspaceRoot workspaceRoot
        end local 1 // org.eclipse.jdt.internal.core.nd.Nd toPopulate
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   17     1     toPopulate  Lorg/eclipse/jdt/internal/core/nd/Nd;
            0   17     2  workspaceRoot  Lorg/eclipse/core/resources/IWorkspaceRoot;
    MethodParameters:
               Name  Flags
      toPopulate     
      workspaceRoot  

  public void rescanAll();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
         0: .line 959
            getstatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.DEBUG_SCHEDULING:Z
            ifeq 2
         1: .line 960
            ldc "Scheduling rescanAll now"
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.logInfo:(Ljava/lang/String;)V
         2: .line 962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.automaticIndexingMutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 963
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.enableAutomaticIndexing:Z
            ifne 8
         4: .line 964
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
            ifne 6
         5: .line 965
            aload 0 /* this */
            iconst_1
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
         6: .line 967
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         7: return
         8: .line 962
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 970
      StackMap locals:
      StackMap stack:
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifne 14
        13: .line 971
            return
        14: .line 973
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.schedule:()V
        15: .line 974
            return
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
      Exception table:
        from    to  target  type
           3     7      10  any
           8     9      10  any
          10    11      10  any

  public void addListener(org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener newListener
         0: .line 981
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listenersMutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 982
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            astore 3 /* oldListeners */
        start local 3 // java.util.Set oldListeners
         2: .line 983
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
         3: .line 984
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            aload 3 /* oldListeners */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 985
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            aload 1 /* newListener */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.util.Set oldListeners
         5: .line 981
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 987
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener newListener
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   10     1   newListener  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;
            2    5     3  oldListeners  Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;>;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
             Name  Flags
      newListener  

  public void removeListener(org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener oldListener
         0: .line 990
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listenersMutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 991
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            aload 1 /* oldListener */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 992
            aload 2
            monitorexit
         3: return
         4: .line 994
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            astore 3 /* oldListeners */
        start local 3 // java.util.Set oldListeners
         5: .line 995
            aload 0 /* this */
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
         6: .line 996
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            aload 3 /* oldListeners */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 997
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            aload 1 /* oldListener */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.util.Set oldListeners
         8: .line 990
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 999
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener oldListener
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   13     1   oldListener  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;
            5    8     3  oldListeners  Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;>;
      Exception table:
        from    to  target  type
           1     3      10  any
           4     9      10  any
          10    11      10  any
    MethodParameters:
             Name  Flags
      oldListener  

  private void fireChange(org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/indexer/IndexerEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent event
         0: .line 1003
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listenersMutex:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 1004
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.listeners:Ljava/util/Set;
            astore 2 /* localListeners */
        start local 2 // java.util.Set localListeners
         2: .line 1003
            aload 3
            monitorexit
         3: goto 6
        end local 2 // java.util.Set localListeners
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent top java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
        start local 2 // java.util.Set localListeners
         6: .line 1007
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent java.util.Set
      StackMap stack:
            aload 2 /* localListeners */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent java.util.Set top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener
            astore 3 /* next */
        start local 3 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener next
         8: .line 1008
            aload 3 /* next */
            aload 1 /* event */
            invokeinterface org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener.consume:(Lorg/eclipse/jdt/internal/core/nd/indexer/IndexerEvent;)V
        end local 3 // org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener next
         9: .line 1007
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 1010
            return
        end local 2 // java.util.Set localListeners
        end local 1 // org.eclipse.jdt.internal.core.nd.indexer.IndexerEvent event
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   11     1           event  Lorg/eclipse/jdt/internal/core/nd/indexer/IndexerEvent;
            2    4     2  localListeners  Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;>;
            6   11     2  localListeners  Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;>;
            8    9     3            next  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer$Listener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
       Name  Flags
      event  

  public void waitForIndex(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 1014
            iconst_0
            istore 2 /* shouldRescan */
        start local 2 // boolean shouldRescan
         1: .line 1015
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.automaticIndexingMutex:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 1016
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.enableAutomaticIndexing:Z
            ifne 4
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.indexerDirtiedWhileDisabled:Z
            ifeq 4
         3: .line 1017
            iconst_1
            istore 2 /* shouldRescan */
         4: .line 1015
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 1020
      StackMap locals:
      StackMap stack:
            iload 2 /* shouldRescan */
            ifeq 10
         9: .line 1021
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.schedule:()V
        10: .line 1023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            lconst_0
            aload 1 /* monitor */
            invokevirtual org.eclipse.core.runtime.jobs.Job.join:(JLorg/eclipse/core/runtime/IProgressMonitor;)Z
            pop
        end local 2 // boolean shouldRescan
        11: .line 1024
            goto 14
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: java.lang.InterruptedException
        12: pop
        13: .line 1025
            new org.eclipse.core.runtime.OperationCanceledException
            dup
            invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
            athrow
        14: .line 1027
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   15     1       monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   11     2  shouldRescan  Z
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
           0    11      12  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      monitor  

  public void waitForIndex(int, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (ILorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // int waitingPolicy
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 1030
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifne 2
         1: .line 1031
            return
         2: .line 1033
      StackMap locals:
      StackMap stack:
            iload 1 /* waitingPolicy */
            tableswitch { // 1 - 3
                    1: 3
                    2: 4
                    3: 6
              default: 7
          }
         3: .line 1035
      StackMap locals:
      StackMap stack:
            goto 7
         4: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.getState:()I
            ifeq 7
         5: .line 1039
            new org.eclipse.core.runtime.OperationCanceledException
            dup
            invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
            athrow
         6: .line 1044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.waitForIndex:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         7: .line 1048
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // int waitingPolicy
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    8     1  waitingPolicy  I
            0    8     2        monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
    MethodParameters:
               Name  Flags
      waitingPolicy  
      monitor        

  public void rebuildIndex(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 1051
            aload 1 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 2 /* subMonitor */
        start local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 1053
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.cancel:()Z
            pop
         2: .line 1055
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanJob:Lorg/eclipse/core/runtime/jobs/Job;
            lconst_0
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.core.runtime.jobs.Job.join:(JLorg/eclipse/core/runtime/IProgressMonitor;)Z
            pop
         3: .line 1056
            goto 5
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack: java.lang.InterruptedException
         4: pop
         5: .line 1059
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 2 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         6: .line 1061
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            aload 2 /* subMonitor */
            iconst_2
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.clear:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         7: .line 1062
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
            invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.flush:()Z
            pop
         8: .line 1063
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
        10: .line 1064
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        11: .line 1065
            aload 3
            athrow
        12: .line 1064
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.nd:Lorg/eclipse/jdt/internal/core/nd/Nd;
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:()V
        13: .line 1066
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifne 15
        14: .line 1067
            return
        15: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* subMonitor */
            bipush 97
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescan:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        16: .line 1070
            return
        end local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0   17     1     monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   17     2  subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
           6     9       9  any
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
         Name  Flags
      monitor  

  public void requestRebuildIndex();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
         0: .line 1073
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndexJob:Lorg/eclipse/core/runtime/jobs/Job;
            invokevirtual org.eclipse.core.runtime.jobs.Job.schedule:()V
         1: .line 1074
            return
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;

  public void makeDirty(org.eclipse.core.runtime.IPath);
    descriptor: (Lorg/eclipse/core/runtime/IPath;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IPath location
         0: .line 1083
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            aload 1 /* location */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.remove:(Ljava/lang/String;)V
         1: .line 1084
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanAll:()V
         2: .line 1085
            return
        end local 1 // org.eclipse.core.runtime.IPath location
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    3     1  location  Lorg/eclipse/core/runtime/IPath;
    MethodParameters:
          Name  Flags
      location  

  public void makeDirty(org.eclipse.core.resources.IProject);
    descriptor: (Lorg/eclipse/core/resources/IProject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.resources.IProject project
         0: .line 1091
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.clear:()V
         1: .line 1092
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanAll:()V
         2: .line 1093
            return
        end local 1 // org.eclipse.core.resources.IProject project
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    3     1  project  Lorg/eclipse/core/resources/IProject;
    MethodParameters:
         Name  Flags
      project  

  public void makeWorkspacePathDirty(org.eclipse.core.runtime.IPath);
    descriptor: (Lorg/eclipse/core/runtime/IPath;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IPath pathToRescan
         0: .line 1103
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.nd.indexer.Indexer.fileStateCache:Lorg/eclipse/jdt/internal/core/nd/indexer/FileStateCache;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.FileStateCache.clear:()V
         1: .line 1104
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescanAll:()V
         2: .line 1105
            return
        end local 1 // org.eclipse.core.runtime.IPath pathToRescan
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    3     1  pathToRescan  Lorg/eclipse/core/runtime/IPath;
    MethodParameters:
              Name  Flags
      pathToRescan  

  private void lambda$0(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 145
            aload 1 /* monitor */
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/SubMonitor;
            astore 2 /* subMonitor */
        start local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 147
            aload 0 /* this */
            aload 2 /* subMonitor */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rescan:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         2: .line 148
            goto 6
      StackMap locals: org.eclipse.jdt.internal.core.nd.indexer.Indexer org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor
      StackMap stack: org.eclipse.jdt.internal.core.nd.db.IndexException
         3: astore 3 /* e */
        start local 3 // org.eclipse.jdt.internal.core.nd.db.IndexException e
         4: .line 149
            ldc "Database corruption detected during indexing. Deleting and rebuilding the index."
            aload 3 /* e */
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
         5: .line 151
            aload 0 /* this */
            aload 2 /* subMonitor */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndex:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 3 // org.eclipse.jdt.internal.core.nd.db.IndexException e
        end local 2 // org.eclipse.core.runtime.SubMonitor subMonitor
         6: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    7     1     monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1    6     2  subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            4    6     3           e  Lorg/eclipse/jdt/internal/core/nd/db/IndexException;
      Exception table:
        from    to  target  type
           1     2       3  Class org.eclipse.jdt.internal.core.nd.db.IndexException
    Exceptions:
      throws org.eclipse.core.runtime.CoreException

  private void lambda$1(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 156
            aload 0 /* this */
            aload 1 /* monitor */
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.rebuildIndex:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
         1: .line 157
            return
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.nd.indexer.Indexer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            0    2     1  monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
}
SourceFile: "Indexer.java"
NestMembers:
  org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public ChunkStats = org.eclipse.jdt.internal.core.nd.db.Database$ChunkStats of org.eclipse.jdt.internal.core.nd.db.Database
  public abstract Listener = org.eclipse.jdt.internal.core.nd.indexer.Indexer$Listener of org.eclipse.jdt.internal.core.nd.indexer.Indexer
  public FingerprintTestResult = org.eclipse.jdt.internal.core.nd.java.FileFingerprint$FingerprintTestResult of org.eclipse.jdt.internal.core.nd.java.FileFingerprint