public final class org.eclipse.jdt.internal.core.nd.Nd
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.eclipse.jdt.internal.core.nd.Nd
super_class: java.lang.Object
{
private static final int CANCELLATION_CHECK_INTERVAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 500
private static final int BLOCKED_WRITE_LOCK_OUTPUT_INTERVAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30000
private static final int LONG_WRITE_LOCK_REPORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
private static final int LONG_READ_LOCK_WAIT_REPORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
private static final double MAX_DIRTY_CACHE_RATIO;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.25
public static boolean sDEBUG_LOCKS;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static boolean DEBUG_DUPLICATE_DELETIONS;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
private final int currentVersion;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxVersion;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int minVersion;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Class<?>, java.lang.Object> cookies;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Object;>;
protected org.eclipse.jdt.internal.core.nd.db.Database db;
descriptor: Lorg/eclipse/jdt/internal/core/nd/db/Database;
flags: (0x0004) ACC_PROTECTED
private java.io.File fPath;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private final java.util.HashMap<java.lang.Object, java.lang.Object> fResultCache;
descriptor: Ljava/util/HashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/Object;Ljava/lang/Object;>;
private final org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry<org.eclipse.jdt.internal.core.nd.NdNode> fNodeTypeRegistry;
descriptor: Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
private java.util.HashMap<java.lang.Long, java.lang.Object> pendingDeletions;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Ljava/lang/Long;Ljava/lang/Object;>;
private org.eclipse.jdt.internal.core.nd.IReader fReader;
descriptor: Lorg/eclipse/jdt/internal/core/nd/IReader;
flags: (0x0002) ACC_PRIVATE
private long fWriteNumber;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mutex;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int lockCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int waitingReaders;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long lastWriteAccess;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long timeWriteLockAcquired;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread writeLockOwner;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo> fLockDebugging;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jdt/internal/core/nd/Nd;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
3: iconst_0
putstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
4: iconst_0
putstatic org.eclipse.jdt.internal.core.nd.Nd.DEBUG_DUPLICATE_DELETIONS:Z
return
LocalVariableTable:
Start End Slot Name Signature
public static int version(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
bipush 16
ishl
iload 1
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 major I
0 1 1 minor I
MethodParameters:
Name Flags
major
minor
public int getDefaultVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.currentVersion:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public boolean isSupportedVersion(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.minVersion:I
if_icmplt 1
iload 1
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.maxVersion:I
if_icmpgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 2 1 vers I
MethodParameters:
Name Flags
vers
public int getMinSupportedVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.minVersion:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public int getMaxSupportedVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.maxVersion:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public static java.lang.String versionString(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: iload 0
bipush 16
ishr
istore 1
start local 1 1: iload 0
ldc 65535
iand
istore 2
start local 2 2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 version I
1 3 1 major I
2 3 2 minor I
MethodParameters:
Name Flags
version
public void <init>(java.io.File, org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry<org.eclipse.jdt.internal.core.nd.NdNode>, int, int, );
descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokestatic org.eclipse.jdt.internal.core.nd.db.ChunkCache.getSharedInstance:()Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
aload 2
iload 3
iload 4
iload 5
invokespecial org.eclipse.jdt.internal.core.nd.Nd.<init>:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;III)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 2 1 dbPath Ljava/io/File;
0 2 2 nodeTypes Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
0 2 3 minVersion I
0 2 4 maxVersion I
0 2 5 currentVersion I
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
Signature: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;III)V
MethodParameters:
Name Flags
dbPath
nodeTypes
minVersion
maxVersion
currentVersion
public void <init>(java.io.File, org.eclipse.jdt.internal.core.nd.db.ChunkCache, org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry<org.eclipse.jdt.internal.core.nd.NdNode>, int, int, );
descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
4: aload 0
new org.eclipse.jdt.internal.core.nd.Nd$1
dup
aload 0
invokespecial org.eclipse.jdt.internal.core.nd.Nd$1.<init>:(Lorg/eclipse/jdt/internal/core/nd/Nd;)V
putfield org.eclipse.jdt.internal.core.nd.Nd.fReader:Lorg/eclipse/jdt/internal/core/nd/IReader;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
6: aload 0
lconst_0
putfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
7: aload 0
iload 6
putfield org.eclipse.jdt.internal.core.nd.Nd.currentVersion:I
8: aload 0
iload 5
putfield org.eclipse.jdt.internal.core.nd.Nd.maxVersion:I
9: aload 0
iload 4
putfield org.eclipse.jdt.internal.core.nd.Nd.minVersion:I
10: aload 0
aload 3
putfield org.eclipse.jdt.internal.core.nd.Nd.fNodeTypeRegistry:Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
11: aload 0
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.loadDatabase:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;)V
12: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 15
13: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Debugging database Locks"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.io.File org.eclipse.jdt.internal.core.nd.db.ChunkCache org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry int int int
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 16 1 dbPath Ljava/io/File;
0 16 2 chunkCache Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
0 16 3 nodeTypes Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
0 16 4 minVersion I
0 16 5 maxVersion I
0 16 6 currentVersion I
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
Signature: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;III)V
MethodParameters:
Name Flags
dbPath
chunkCache
nodeTypes
minVersion
maxVersion
currentVersion
public java.io.File getPath();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fPath:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public long getWriteNumber();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fWriteNumber:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public void scheduleDeletion(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 3
1: aload 0
lload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.logDoubleDeletion:(J)V
2: return
3: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
astore 3
start local 3 4: getstatic org.eclipse.jdt.internal.core.nd.Nd.DEBUG_DUPLICATE_DELETIONS:Z
ifeq 6
5: new java.lang.RuntimeException
dup
invokespecial java.lang.RuntimeException.<init>:()V
astore 3
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 3
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 8 1 addressOfNodeToDelete J
4 8 3 data Ljava/lang/Object;
MethodParameters:
Name Flags
addressOfNodeToDelete
protected void logDoubleDeletion(long);
descriptor: (J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: ldc "Database object queued for deletion twice"
new java.lang.RuntimeException
dup
invokespecial java.lang.RuntimeException.<init>:()V
invokestatic org.eclipse.jdt.internal.core.nd.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
instanceof java.lang.RuntimeException
ifeq 5
3: aload 3
checkcast java.lang.RuntimeException
astore 4
start local 4 4: ldc "Data associated with earlier deletion stack was:"
aload 4
invokestatic org.eclipse.jdt.internal.core.nd.Package.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 5: StackMap locals: java.lang.Object
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 6 1 addressOfNodeToDelete J
2 6 3 earlierData Ljava/lang/Object;
4 5 4 exception Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
addressOfNodeToDelete
public void processDeletions();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: goto 4
1: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 1
start local 1 2: aload 0
lload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.deleteIfUnreferenced:(J)V
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 1 4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
invokevirtual java.util.HashMap.isEmpty:()Z
ifeq 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
2 4 1 next J
public <T> void setData(java.lang.Class<T>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
dup
astore 3
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
monitorexit
3: goto 6
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Class java.lang.Object java.util.Map
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 7 1 key Ljava/lang/Class<TT;>;
0 7 2 value TT;
Exception table:
from to target type
1 3 4 any
4 5 4 any
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;TT;)V
MethodParameters:
Name Flags
key
value
public <T> T getData(java.lang.Class<T>, java.util.function.Supplier<T>);
descriptor: (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
dup
astore 4
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 4
monitorexit
3: goto 6
end local 3 StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Class java.util.function.Supplier top java.util.Map
StackMap stack: java.lang.Throwable
4: aload 4
monitorexit
5: athrow
start local 3 6: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Class java.util.function.Supplier java.lang.Object
StackMap stack:
aload 3
ifnonnull 19
7: aload 2
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
astore 3
8: aload 3
ifnull 19
9: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
dup
astore 4
monitorenter
10: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 11: aload 5
ifnonnull 14
12: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.cookies:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: goto 15
14: StackMap locals: java.util.Map java.lang.Object
StackMap stack:
aload 5
astore 3
end local 5 15: StackMap locals:
StackMap stack:
aload 4
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 4
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 20 1 key Ljava/lang/Class<TT;>;
0 20 2 defaultValue Ljava/util/function/Supplier<TT;>;
2 4 3 result TT;
6 20 3 result TT;
11 15 5 newResult TT;
Exception table:
from to target type
1 3 4 any
4 5 4 any
10 16 17 any
17 18 17 any
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/util/function/Supplier<TT;>;)TT;
MethodParameters:
Name Flags
key
defaultValue
protected boolean isPermanentlyReadOnly();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
private void loadDatabase(java.io.File, org.eclipse.jdt.internal.core.nd.db.ChunkCache);
descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
putfield org.eclipse.jdt.internal.core.nd.Nd.fPath:Ljava/io/File;
1: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.clearCaches:()V
2: aload 0
new org.eclipse.jdt.internal.core.nd.db.Database
dup
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fPath:Ljava/io/File;
aload 2
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDefaultVersion:()I
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.isPermanentlyReadOnly:()Z
invokespecial org.eclipse.jdt.internal.core.nd.db.Database.<init>:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;IZ)V
putfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setExclusiveLock:()V
4: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.isSupportedVersion:()Z
ifne 12
5: new java.lang.StringBuilder
dup
ldc "Index database uses the unsupported version "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getVersion:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: ldc ". Deleting and recreating."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.nd.Package.logInfo:(Ljava/lang/String;)V
8: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.close:()V
9: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fPath:Ljava/io/File;
invokevirtual java.io.File.delete:()Z
pop
10: aload 0
new org.eclipse.jdt.internal.core.nd.db.Database
dup
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fPath:Ljava/io/File;
aload 2
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDefaultVersion:()I
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.isPermanentlyReadOnly:()Z
invokespecial org.eclipse.jdt.internal.core.nd.db.Database.<init>:(Ljava/io/File;Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;IZ)V
putfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
11: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setExclusiveLock:()V
12: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.giveUpExclusiveLock:()V
13: aload 0
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
ldc 2052
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getLong:(J)J
putfield org.eclipse.jdt.internal.core.nd.Nd.fWriteNumber:J
14: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
ifeq 15
iconst_1
goto 16
StackMap locals:
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database
15: iconst_0
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.io.File org.eclipse.jdt.internal.core.nd.db.ChunkCache
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database int
16: invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setLocked:(Z)V
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 18 1 dbPath Ljava/io/File;
0 18 2 cache Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
MethodParameters:
Name Flags
dbPath
cache
public org.eclipse.jdt.internal.core.nd.db.Database getDB();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/db/Database;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public org.eclipse.jdt.internal.core.nd.IReader acquireReadLock();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/IReader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 1
invokestatic java.lang.System.nanoTime:()J
goto 2
StackMap locals:
StackMap stack:
1: lconst_0
StackMap locals:
StackMap stack: long
2: lstore 1
start local 1 3: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
5: goto 7
6: StackMap locals: long java.lang.Object
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iflt 6
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 4
10: aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
13: aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
14: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
iconst_1
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setLocked:(Z)V
15: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 20
16: invokestatic java.lang.System.nanoTime:()J
lload 1
lsub
ldc 1000000
ldiv
lstore 1
17: lload 1
ldc 1000
lcmp
iflt 19
18: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Acquired index read lock after "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " ms wait."
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
19: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.incReadLock:(Ljava/util/Map;)V
20: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fReader:Lorg/eclipse/jdt/internal/core/nd/IReader;
aload 3
monitorexit
21: areturn
22: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
23: athrow
end local 1 24: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd
StackMap stack: java.lang.InterruptedException
pop
25: new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
3 24 1 t J
Exception table:
from to target type
5 9 9 any
4 21 22 any
22 23 22 any
0 21 24 Class java.lang.InterruptedException
22 24 24 Class java.lang.InterruptedException
public void releaseReadLock();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
ifgt 2
new java.lang.AssertionError
dup
ldc "No lock to release"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 4
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.decReadLock:(Ljava/util/Map;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
ifle 6
5: aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
6: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
7: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
ifeq 8
iconst_1
goto 9
StackMap locals:
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database
8: iconst_0
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Object
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database int
9: invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setLocked:(Z)V
10: aload 1
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 1
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
Exception table:
from to target type
1 11 12 any
12 13 12 any
public void acquireWriteLock(org.eclipse.core.runtime.IProgressMonitor);
descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireWriteLock:(ILorg/eclipse/core/runtime/IProgressMonitor;)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
2: pop
3: new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 5 1 monitor Lorg/eclipse/core/runtime/IProgressMonitor;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
MethodParameters:
Name Flags
monitor
public void acquireWriteLock(int, org.eclipse.core.runtime.IProgressMonitor);
descriptor: (ILorg/eclipse/core/runtime/IProgressMonitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.isPermanentlyReadOnly:()Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
2: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 4
3: aload 0
iload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.incWriteLock:(I)V
4: StackMap locals: java.lang.Object
StackMap stack:
iload 1
ifle 9
5: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 6
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iload 1
if_icmpge 6
new java.lang.AssertionError
dup
ldc "Not enough locks to release"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iload 1
if_icmpge 10
7: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
istore 1
8: goto 10
9: StackMap locals:
StackMap stack:
iconst_0
istore 1
10: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 11
invokestatic java.lang.System.currentTimeMillis:()J
goto 12
StackMap locals:
StackMap stack:
11: lconst_0
StackMap locals:
StackMap stack: long
12: lstore 4
start local 4 13: goto 19
14: StackMap locals: long
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
ldc 500
invokevirtual java.lang.Object.wait:(J)V
15: aload 2
ifnull 17
aload 2
invokeinterface org.eclipse.core.runtime.IProgressMonitor.isCanceled:()Z
ifeq 17
16: new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 19
18: aload 0
lload 4
iload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.reportBlockedWriteLock:(JI)J
lstore 4
19: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iload 1
if_icmpgt 14
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
ifgt 14
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iflt 14
20: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
21: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 23
22: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.eclipse.jdt.internal.core.nd.Nd.timeWriteLockAcquired:J
23: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setExclusiveLock:()V
24: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.writeLockOwner:Ljava/lang/Thread;
ifnull 26
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.writeLockOwner:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 26
25: new java.lang.IllegalStateException
dup
ldc "We somehow managed to acquire a write lock while another thread already holds it."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield org.eclipse.jdt.internal.core.nd.Nd.writeLockOwner:Ljava/lang/Thread;
end local 4 27: aload 3
monitorexit
28: goto 31
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int org.eclipse.core.runtime.IProgressMonitor java.lang.Object
StackMap stack: java.lang.Throwable
29: aload 3
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 32 1 giveupReadLocks I
0 32 2 monitor Lorg/eclipse/core/runtime/IProgressMonitor;
13 27 4 start J
Exception table:
from to target type
2 28 29 any
29 30 29 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
giveupReadLocks
monitor
public final void releaseWriteLock();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
iconst_0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLock:(IZ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public void releaseWriteLock(int, boolean);
descriptor: (IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 4
start local 4 2: aload 4
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.writeLockOwner:Ljava/lang/Thread;
if_acmpeq 4
3: new java.lang.IllegalStateException
dup
ldc "Index wasn't locked by this thread!!!"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.Object java.lang.Thread
StackMap stack:
aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.nd.Nd.writeLockOwner:Ljava/lang/Thread;
end local 4 5: aload 3
monitorexit
6: goto 9
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 10: iconst_0
istore 4
start local 4 11: iload 1
ifne 13
12: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.clearResultCache:()V
13: StackMap locals: java.lang.RuntimeException int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
ldc 2052
aload 0
dup
getfield org.eclipse.jdt.internal.core.nd.Nd.fWriteNumber:J
lconst_1
ladd
dup2_x1
putfield org.eclipse.jdt.internal.core.nd.Nd.fWriteNumber:J
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.putLong:(JJ)V
14: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.processDeletions:()V
15: goto 38
StackMap locals:
StackMap stack: java.lang.RuntimeException
16: astore 5
start local 5 17: aload 5
astore 3
end local 5 18: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.giveUpExclusiveLock:()V
19: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 20
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iconst_m1
if_icmpeq 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
21: aload 0
iload 1
iload 2
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLockAndFlush:(IZ)V
22: goto 47
StackMap locals:
StackMap stack: java.lang.RuntimeException
23: astore 7
start local 7 24: aload 3
ifnull 26
25: aload 7
aload 3
invokevirtual java.lang.RuntimeException.addSuppressed:(Ljava/lang/Throwable;)V
26: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int top top java.lang.RuntimeException
StackMap stack:
aload 7
athrow
end local 7 27: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int
StackMap stack: java.lang.Throwable
astore 6
28: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.giveUpExclusiveLock:()V
29: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 30
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iconst_m1
if_icmpeq 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int top java.lang.Throwable
StackMap stack:
aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
31: aload 0
iload 1
iload 2
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLockAndFlush:(IZ)V
32: goto 37
StackMap locals:
StackMap stack: java.lang.RuntimeException
33: astore 7
start local 7 34: aload 3
ifnull 36
35: aload 7
aload 3
invokevirtual java.lang.RuntimeException.addSuppressed:(Ljava/lang/Throwable;)V
36: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 7
athrow
end local 7 37: StackMap locals:
StackMap stack:
aload 6
athrow
38: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.giveUpExclusiveLock:()V
39: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 40
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
iconst_m1
if_icmpeq 40
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
40: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
41: aload 0
iload 1
iload 2
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseWriteLockAndFlush:(IZ)V
42: goto 47
StackMap locals:
StackMap stack: java.lang.RuntimeException
43: astore 7
start local 7 44: aload 3
ifnull 46
45: aload 7
aload 3
invokevirtual java.lang.RuntimeException.addSuppressed:(Ljava/lang/Throwable;)V
46: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int top top java.lang.RuntimeException
StackMap stack:
aload 7
athrow
end local 7 47: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int java.lang.RuntimeException int
StackMap stack:
iload 4
ifeq 49
48: new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
49: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 50 1 establishReadLocks I
0 50 2 flush Z
2 5 4 current Ljava/lang/Thread;
10 50 3 exception Ljava/lang/RuntimeException;
11 50 4 wasInterrupted Z
17 18 5 e Ljava/lang/RuntimeException;
24 27 7 e Ljava/lang/RuntimeException;
34 37 7 e Ljava/lang/RuntimeException;
44 47 7 e Ljava/lang/RuntimeException;
Exception table:
from to target type
1 6 7 any
7 8 7 any
11 15 16 Class java.lang.RuntimeException
21 22 23 Class java.lang.RuntimeException
11 18 27 any
31 32 33 Class java.lang.RuntimeException
41 42 43 Class java.lang.RuntimeException
MethodParameters:
Name Flags
establishReadLocks
flush
private void releaseWriteLockAndFlush(int, boolean);
descriptor: (IZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
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.getDirtyChunkCount:()I
istore 3
start local 3 1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getCache:()Lorg/eclipse/jdt/internal/core/nd/db/ChunkCache;
invokevirtual org.eclipse.jdt.internal.core.nd.db.ChunkCache.getMaxSize:()J
ldc 4096
ldiv
l2i
istore 4
start local 4 2: iload 3
i2d
iload 4
i2d
ldc 0.25
dmul
dcmpl
ifle 4
3: iconst_1
istore 2
4: StackMap locals: int int
StackMap stack:
iload 2
ifeq 5
iload 1
iconst_1
iadd
goto 6
StackMap locals:
StackMap stack:
5: iload 1
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 6
monitorenter
8: getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifeq 13
9: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.timeWriteLockAcquired:J
lsub
lstore 7
start local 7 10: lload 7
ldc 1000
lcmp
iflt 12
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Index write lock held for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 7
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;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: StackMap locals: int java.lang.Object long
StackMap stack:
aload 0
iload 5
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.decWriteLock:(I)V
end local 7 13: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
ifge 15
14: aload 0
iload 5
putfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
15: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
16: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
iload 5
ifeq 17
iconst_1
goto 18
StackMap locals:
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database
17: iconst_0
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd int int int int int java.lang.Object
StackMap stack: org.eclipse.jdt.internal.core.nd.db.Database int
18: invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.setLocked:(Z)V
19: aload 6
monitorexit
20: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
21: aload 6
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
iload 2
ifeq 30
24: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.flush:()Z
pop
25: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 6
27: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseReadLock:()V
28: aload 6
athrow
29: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.releaseReadLock:()V
30: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 31 1 establishReadLocks I
0 31 2 flush Z
1 31 3 dirtyPages I
2 31 4 totalCacheSize I
7 31 5 initialReadLocks I
10 13 7 timeHeld J
Exception table:
from to target type
8 20 21 any
21 22 21 any
24 26 26 any
Exceptions:
throws java.lang.AssertionError
MethodParameters:
Name Flags
establishReadLocks
flush
public boolean hasWaitingReaders();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
ifle 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public long getLastWriteAccess();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lastWriteAccess:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public boolean isSupportedVersion();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.getVersion:()I
istore 1
start local 1 1: iload 1
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.minVersion:I
if_icmplt 2
iload 1
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.maxVersion:I
if_icmpgt 2
iconst_1
ireturn
StackMap locals: int
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
1 3 1 version I
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.close:()V
1: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.clearCaches:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
private void clearCaches();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.clearResultCache:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
public void clearResultCache();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
dup
astore 1
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
invokevirtual java.util.HashMap.clear:()V
2: aload 1
monitorexit
3: goto 6
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.util.HashMap
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public java.lang.Object getCachedResult(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
dup
astore 2
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
monitorexit
2: areturn
3: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Object java.util.HashMap
StackMap stack: java.lang.Throwable
aload 2
monitorexit
4: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 5 1 key Ljava/lang/Object;
Exception table:
from to target type
1 2 3 any
3 4 3 any
MethodParameters:
Name Flags
key
public void putCachedResult(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.putCachedResult:(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 2 1 key Ljava/lang/Object;
0 2 2 result Ljava/lang/Object;
MethodParameters:
Name Flags
key
result
public java.lang.Object putCachedResult(java.lang.Object, java.lang.Object, boolean);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
dup
astore 4
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 2: aload 5
ifnull 6
iload 3
ifne 6
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
aload 1
aload 5
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 5
aload 4
monitorexit
5: areturn
6: StackMap locals: java.util.HashMap java.lang.Object
StackMap stack:
aload 2
aload 4
monitorexit
7: areturn
end local 5 8: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Object java.lang.Object int java.util.HashMap
StackMap stack: java.lang.Throwable
aload 4
monitorexit
9: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 10 1 key Ljava/lang/Object;
0 10 2 result Ljava/lang/Object;
0 10 3 replace Z
2 8 5 old Ljava/lang/Object;
Exception table:
from to target type
1 5 8 any
6 7 8 any
8 9 8 any
MethodParameters:
Name Flags
key
result
replace
public void removeCachedResult(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
dup
astore 2
monitorenter
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fResultCache:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.lang.Object java.util.HashMap
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 7 1 key Ljava/lang/Object;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
key
private static org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo getLockInfo(java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo>);
descriptor: (Ljava/util/Map;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic org.eclipse.jdt.internal.core.nd.Nd.$assertionsDisabled:Z
ifne 1
getstatic org.eclipse.jdt.internal.core.nd.Nd.sDEBUG_LOCKS:Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 2: aload 0
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
astore 2
start local 2 3: aload 2
ifnonnull 6
4: new org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
dup
invokespecial org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.<init>:()V
astore 2
5: aload 0
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.lang.Thread org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 lockDebugging Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
2 7 1 key Ljava/lang/Thread;
3 7 2 result Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Signature: (Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
MethodParameters:
Name Flags
lockDebugging
static void incReadLock(java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo>);
descriptor: (Ljava/util/Map;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.eclipse.jdt.internal.core.nd.Nd.getLockInfo:(Ljava/util/Map;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
astore 1
start local 1 1: aload 1
dup
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
2: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.addTrace:()I
bipush 10
if_icmple 4
3: aload 0
invokestatic org.eclipse.jdt.internal.core.nd.Nd.outputReadLocks:(Ljava/util/Map;)V
4: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 lockDebugging Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
1 5 1 info Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Signature: (Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;)V
MethodParameters:
Name Flags
lockDebugging
static void decReadLock(java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo>);
descriptor: (Ljava/util/Map;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.eclipse.jdt.internal.core.nd.Nd.getLockInfo:(Ljava/util/Map;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
astore 1
start local 1 1: aload 1
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
ifgt 4
2: aload 0
invokestatic org.eclipse.jdt.internal.core.nd.Nd.outputReadLocks:(Ljava/util/Map;)V
3: new java.lang.AssertionError
dup
ldc "Superfluous releaseReadLock"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
aload 1
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
ifeq 7
5: aload 0
invokestatic org.eclipse.jdt.internal.core.nd.Nd.outputReadLocks:(Ljava/util/Map;)V
6: new java.lang.AssertionError
dup
ldc "Releasing readlock while holding write lock"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
aload 1
dup
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
iconst_1
isub
dup_x1
putfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
ifne 10
8: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: goto 11
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.addTrace:()I
pop
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 lockDebugging Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
1 12 1 info Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Exceptions:
throws java.lang.AssertionError
Signature: (Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;)V
MethodParameters:
Name Flags
lockDebugging
private void incWriteLock(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.getLockInfo:(Ljava/util/Map;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
astore 2
start local 2 1: aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
iload 1
if_icmpeq 4
2: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.outputReadLocks:(Ljava/util/Map;)V
3: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "write lock with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " readlocks, expected "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
ifeq 6
5: new java.lang.AssertionError
dup
ldc "Duplicate write lock"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
aload 2
dup
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 8 1 giveupReadLocks I
1 8 2 info Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Exceptions:
throws java.lang.AssertionError
MethodParameters:
Name Flags
giveupReadLocks
private void decWriteLock(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.getLockInfo:(Ljava/util/Map;)Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
astore 2
start local 2 1: aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
iload 1
if_icmpeq 3
2: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "release write lock with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " readlocks, expected "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
iconst_1
if_icmpeq 5
4: new java.lang.AssertionError
dup
ldc "Wrong release write lock"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aload 2
iconst_0
putfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fWriteLocks:I
6: aload 2
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
ifne 8
7: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 9 1 establishReadLocks I
1 9 2 info Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Exceptions:
throws java.lang.AssertionError
MethodParameters:
Name Flags
establishReadLocks
private long reportBlockedWriteLock(long, int);
descriptor: (JI)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 3 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 1: lload 4
lload 1
ldc 30000
ladd
lcmp
iflt 7
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Blocked writeLock"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " lockcount= "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.lockCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", giveupReadLocks="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", waitingReaders="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.waitingReaders:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.outputReadLocks:(Ljava/util/Map;)V
6: lload 4
lstore 1
7: StackMap locals: long
StackMap stack:
lload 1
lreturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 8 1 start J
0 8 3 giveupReadLocks I
1 8 4 now J
MethodParameters:
Name Flags
start
giveupReadLocks
private static void outputReadLocks(java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo>);
descriptor: (Ljava/util/Map;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "--------------------- Lock Debugging -------------------------"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: java.util.Map top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 1
start local 1 3: aload 0
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
astore 3
start local 3 4: aload 3
aload 1
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.write:(Ljava/lang/String;)V
end local 3 end local 1 5: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "---------------------------------------------------------------"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 lockDebugging Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
3 5 1 th Ljava/lang/Thread;
4 5 3 info Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
Signature: (Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;)V
MethodParameters:
Name Flags
lockDebugging
public void adjustThreadForReadLock(java.util.Map<java.lang.Thread, org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 14
StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 2
start local 2 2: aload 1
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
astore 4
start local 4 3: aload 4
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
ifle 14
4: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
astore 5
start local 5 5: aload 5
ifnonnull 8
6: new org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
dup
invokespecial org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.<init>:()V
astore 5
7: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
aload 2
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.util.Map java.lang.Thread java.util.Iterator org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
StackMap stack:
aload 5
aload 4
invokevirtual org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.inc:(Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;)V
9: iconst_0
istore 6
start local 6 10: goto 13
11: StackMap locals: int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fLockDebugging:Ljava/util/Map;
invokestatic org.eclipse.jdt.internal.core.nd.Nd.decReadLock:(Ljava/util/Map;)V
12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 4
getfield org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo.fReadLocks:I
if_icmplt 11
end local 6 end local 5 end local 4 end local 2 14: StackMap locals: org.eclipse.jdt.internal.core.nd.Nd java.util.Map top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 16 1 lockDebugging Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;
2 14 2 th Ljava/lang/Thread;
3 14 4 val Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
5 14 5 myval Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;
10 14 6 i I
Signature: (Ljava/util/Map<Ljava/lang/Thread;Lorg/eclipse/jdt/internal/core/nd/Nd$DebugLockInfo;>;)V
MethodParameters:
Name Flags
lockDebugging
public org.eclipse.jdt.internal.core.nd.NdNode getNode(long, short);
descriptor: (JS)Lorg/eclipse/jdt/internal/core/nd/NdNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fNodeTypeRegistry:Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
aload 0
lload 1
iload 3
invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.createNode:(Lorg/eclipse/jdt/internal/core/nd/Nd;JS)Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.NdNode
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 1 1 address J
0 1 3 nodeType S
Exceptions:
throws org.eclipse.jdt.internal.core.nd.db.IndexException
MethodParameters:
Name Flags
address
nodeType
public <T extends org.eclipse.jdt.internal.core.nd.NdNode> org.eclipse.jdt.internal.core.nd.ITypeFactory<T> getTypeFactory(short);
descriptor: (S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fNodeTypeRegistry:Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
iload 1
invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.getTypeFactory:(S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 1 1 nodeType S
Signature: <T:Lorg/eclipse/jdt/internal/core/nd/NdNode;>(S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TT;>;
MethodParameters:
Name Flags
nodeType
public short getNodeType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)S
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fNodeTypeRegistry:Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry.getTypeForClass:(Ljava/lang/Class;)S
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 1 1 toQuery Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)S
MethodParameters:
Name Flags
toQuery
private void deleteIfUnreferenced(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.NdNode.NODE_TYPE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
aload 0
lload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
istore 3
start local 3 3: aload 0
iload 3
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getTypeFactory:(S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
astore 4
start local 4 4: aload 4
aload 0
lload 1
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.isReadyForDeletion:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
ifeq 7
5: aload 4
aload 0
lload 1
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.destruct:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
6: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
lload 1
sipush 256
iload 3
iadd
i2s
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.free:(JS)V
7: StackMap locals: int org.eclipse.jdt.internal.core.nd.ITypeFactory
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 8 1 address J
3 8 3 nodeType S
4 8 4 factory1 Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<+Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
MethodParameters:
Name Flags
address
public void delete(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.nd.NdNode.NODE_TYPE:Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
aload 0
lload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.FieldShort.get:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)S
istore 3
start local 3 3: aload 0
iload 3
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getTypeFactory:(S)Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
astore 4
start local 4 4: aload 4
aload 0
lload 1
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.destruct:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
5: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
lload 1
sipush 256
iload 3
iadd
i2s
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.free:(JS)V
6: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 9
7: aload 0
lload 1
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.logDoubleDeletion:(J)V
8: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals: int org.eclipse.jdt.internal.core.nd.ITypeFactory
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 10 1 address J
3 10 3 nodeType S
4 10 4 factory1 Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<+Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
MethodParameters:
Name Flags
address
public org.eclipse.jdt.internal.core.nd.NdNodeTypeRegistry<org.eclipse.jdt.internal.core.nd.NdNode> getTypeRegistry();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.fNodeTypeRegistry:Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
Signature: ()Lorg/eclipse/jdt/internal/core/nd/NdNodeTypeRegistry<Lorg/eclipse/jdt/internal/core/nd/NdNode;>;
public void clear(org.eclipse.core.runtime.IProgressMonitor);
descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.pendingDeletions:Ljava/util/HashMap;
invokevirtual java.util.HashMap.clear:()V
1: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDB:()Lorg/eclipse/jdt/internal/core/nd/db/Database;
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.Nd.getDefaultVersion:()I
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.clear:(I)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 3 1 monitor Lorg/eclipse/core/runtime/IProgressMonitor;
MethodParameters:
Name Flags
monitor
public boolean isValidAddress(long);
descriptor: (J)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifle 1
lload 1
aload 0
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.getChunkCount:()I
i2l
ldc 4096
lmul
lcmp
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
0 2 1 address J
MethodParameters:
Name Flags
address
public org.eclipse.jdt.internal.core.nd.IndexExceptionBuilder describeProblem();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/IndexExceptionBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.Nd.db:Lorg/eclipse/jdt/internal/core/nd/db/Database;
invokevirtual org.eclipse.jdt.internal.core.nd.db.Database.describeProblem:()Lorg/eclipse/jdt/internal/core/nd/IndexExceptionBuilder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/Nd;
}
SourceFile: "Nd.java"
NestMembers:
org.eclipse.jdt.internal.core.nd.Nd$1 org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo
InnerClasses:
org.eclipse.jdt.internal.core.nd.Nd$1
DebugLockInfo = org.eclipse.jdt.internal.core.nd.Nd$DebugLockInfo of org.eclipse.jdt.internal.core.nd.Nd