public abstract class org.eclipse.jdt.internal.core.search.processing.JobManager implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.eclipse.jdt.internal.core.search.processing.JobManager
super_class: java.lang.Object
{
protected org.eclipse.jdt.internal.core.search.processing.IJob[] awaitingJobs;
descriptor: [Lorg/eclipse/jdt/internal/core/search/processing/IJob;
flags: (0x0004) ACC_PROTECTED
protected int jobStart;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int jobEnd;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected boolean executing;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected java.lang.Thread processingThread;
descriptor: Ljava/lang/Thread;
flags: (0x0004) ACC_PROTECTED
protected org.eclipse.core.runtime.jobs.Job progressJob;
descriptor: Lorg/eclipse/core/runtime/jobs/Job;
flags: (0x0004) ACC_PROTECTED
private int enableCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public static boolean VERBOSE;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public boolean activated;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
private int awaitingClients;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
putstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 10
anewarray org.eclipse.jdt.internal.core.search.processing.IJob
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
2: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
3: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
4: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.executing:Z
5: aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
6: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.activated:Z
7: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
public void activateProcessing();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.activated:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
public synchronized int awaitingJobsCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.activated:Z
ifeq 1
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
isub
iconst_1
iadd
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
public synchronized org.eclipse.jdt.internal.core.search.processing.IJob currentJob();
descriptor: ()Lorg/eclipse/jdt/internal/core/search/processing/IJob;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
ifle 2
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
if_icmpgt 2
1: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aaload
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
public synchronized void disable();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
1: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 3
2: ldc "DISABLING background indexing"
invokestatic org.eclipse.jdt.internal.core.util.Util.verbose:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
public void discardJobs(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "DISCARD background job family - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
3: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.currentJob:()Lorg/eclipse/jdt/internal/core/search/processing/IJob;
astore 2
start local 2 4: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.disable:()V
5: aload 3
monitorexit
6: goto 9
end local 2 StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.String top org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.String org.eclipse.jdt.internal.core.search.processing.IJob
StackMap stack:
aload 2
ifnull 18
aload 1
ifnull 10
aload 2
aload 1
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.belongsTo:(Ljava/lang/String;)Z
ifeq 18
10: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.cancel:()V
11: goto 17
12: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 14
13: new java.lang.StringBuilder
dup
ldc "-> waiting end of current background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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.util.Util.verbose:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
ldc 50
invokestatic java.lang.Thread.sleep:(J)V
15: goto 17
StackMap locals:
StackMap stack: java.lang.InterruptedException
16: pop
17: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnull 18
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.executing:Z
ifne 12
18: StackMap locals:
StackMap stack:
iconst_m1
istore 3
start local 3 19: aload 0
dup
astore 4
monitorenter
20: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
istore 5
start local 5 21: goto 32
22: StackMap locals: int org.eclipse.jdt.internal.core.search.processing.JobManager int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iload 5
aaload
astore 2
23: aload 2
ifnull 31
24: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iload 5
aconst_null
aastore
25: aload 1
ifnull 28
aload 2
aload 1
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.belongsTo:(Ljava/lang/String;)Z
ifne 28
26: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iinc 3 1
iload 3
aload 2
aastore
27: goto 31
28: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 30
29: new java.lang.StringBuilder
dup
ldc "-> discarding background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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.util.Util.verbose:(Ljava/lang/String;)V
30: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.cancel:()V
31: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
32: iload 5
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
if_icmple 22
end local 5 33: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
34: aload 0
iload 3
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
35: aload 4
monitorexit
36: goto 42
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.String org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
37: aload 4
monitorexit
38: athrow
end local 3 end local 2 39: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.String
StackMap stack: java.lang.Throwable
astore 6
40: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.enable:()V
41: aload 6
athrow
42: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.enable:()V
43: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 45
44: new java.lang.StringBuilder
dup
ldc "DISCARD DONE with background job family - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
0 46 1 jobFamily Ljava/lang/String;
4 7 2 currentJob Lorg/eclipse/jdt/internal/core/search/processing/IJob;
9 39 2 currentJob Lorg/eclipse/jdt/internal/core/search/processing/IJob;
19 39 3 loc I
21 33 5 i I
Exception table:
from to target type
3 6 7 any
7 8 7 any
12 15 16 Class java.lang.InterruptedException
20 36 37 any
37 38 37 any
2 39 39 any
MethodParameters:
Name Flags
jobFamily
public synchronized void enable();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
1: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 3
2: ldc "ENABLING background indexing"
invokestatic org.eclipse.jdt.internal.core.util.Util.verbose:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
protected synchronized boolean isJobWaiting(org.eclipse.jdt.internal.core.search.processing.IJob);
descriptor: (Lorg/eclipse/jdt/internal/core/search/processing/IJob;)Z
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iload 2
aaload
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
4: iload 2
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
if_icmpgt 2
end local 2 5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
0 6 1 request Lorg/eclipse/jdt/internal/core/search/processing/IJob;
1 5 2 i I
MethodParameters:
Name Flags
request
protected synchronized void moveToNextJob();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
if_icmpgt 5
1: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
dup_x1
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aconst_null
aastore
2: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
if_icmple 5
3: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
4: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
protected void notifyIdle(long);
descriptor: (J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=3, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
0 1 1 idlingTime J
MethodParameters:
Name Flags
idlingTime
public boolean performConcurrentJob(org.eclipse.jdt.internal.core.search.processing.IJob, int, org.eclipse.core.runtime.IProgressMonitor);
descriptor: (Lorg/eclipse/jdt/internal/core/search/processing/IJob;ILorg/eclipse/core/runtime/IProgressMonitor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=22, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "STARTING concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.ensureReadyToRun:()V
3: iconst_0
istore 4
start local 4 4: aload 3
invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/SubMonitor;
astore 5
start local 5 5: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobsCount:()I
ifle 93
6: iload 2
tableswitch { // 1 - 3
1: 7
2: 23
3: 28
default: 93
}
7: StackMap locals: int org.eclipse.core.runtime.SubMonitor
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 9
8: new java.lang.StringBuilder
dup
ldc "-> NOT READY - forcing immediate - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.disable:()V
10: aload 1
aload 5
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.execute:(Lorg/eclipse/core/runtime/IProgressMonitor;)Z
istore 4
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 6
13: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.enable:()V
14: aload 6
athrow
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.enable:()V
16: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 18
17: new java.lang.StringBuilder
dup
ldc "FINISHED concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
iload 4
istore 21
19: aload 3
invokestatic org.eclipse.core.runtime.SubMonitor.done:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
20: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 22
21: new java.lang.StringBuilder
dup
ldc "FINISHED concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
22: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor top top top top top top top top top top top top top top top int
StackMap stack:
iload 21
ireturn
23: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 25
24: new java.lang.StringBuilder
dup
ldc "-> NOT READY - cancelling - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
25: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 27
26: new java.lang.StringBuilder
dup
ldc "CANCELED concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
27: StackMap locals:
StackMap stack:
new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
sipush 1000
istore 6
start local 6 29: aload 5
bipush 10
invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
bipush 8
invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
iload 6
invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
astore 7
start local 7 30: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
astore 8
start local 8 31: aload 8
ifnonnull 32
iconst_m1
goto 33
StackMap locals: int org.eclipse.core.runtime.SubMonitor java.lang.Thread
StackMap stack:
32: aload 8
invokevirtual java.lang.Thread.getPriority:()I
StackMap locals:
StackMap stack: int
33: istore 9
start local 9 34: aload 8
ifnull 36
35: aload 8
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getPriority:()I
invokevirtual java.lang.Thread.setPriority:(I)V
36: StackMap locals: int
StackMap stack:
aload 0
dup
astore 10
monitorenter
37: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
iconst_1
iadd
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
38: aload 10
monitorexit
39: goto 42
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
40: aload 10
monitorexit
41: athrow
42: StackMap locals:
StackMap stack:
aconst_null
astore 10
start local 10 43: iload 6
istore 12
start local 12 44: fconst_0
fstore 13
start local 13 45: fconst_0
fstore 14
start local 14 46: goto 72
start local 11 47: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int org.eclipse.jdt.internal.core.search.processing.IJob int int float float
StackMap stack:
aload 7
invokevirtual org.eclipse.core.runtime.SubMonitor.isCanceled:()Z
ifne 48
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnonnull 49
48: StackMap locals:
StackMap stack:
new org.eclipse.core.runtime.OperationCanceledException
dup
invokespecial org.eclipse.core.runtime.OperationCanceledException.<init>:()V
athrow
49: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.currentJob:()Lorg/eclipse/jdt/internal/core/search/processing/IJob;
astore 15
start local 15 50: aload 15
ifnull 67
aload 15
aload 10
if_acmpeq 67
51: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 53
52: new java.lang.StringBuilder
dup
ldc "-> NOT READY - waiting until ready - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
53: StackMap locals: org.eclipse.jdt.internal.core.search.processing.IJob
StackMap stack:
getstatic org.eclipse.jdt.internal.core.util.Messages.jobmanager_filesToIndex:Ljava/lang/String;
aload 15
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.getJobFamily:()Ljava/lang/String;
iload 11
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
astore 16
start local 16 54: aload 7
aload 16
invokevirtual org.eclipse.core.runtime.SubMonitor.subTask:(Ljava/lang/String;)V
55: iload 11
iload 6
if_icmpge 56
fconst_1
goto 57
StackMap locals: java.lang.String
StackMap stack:
56: iload 6
i2f
iload 11
i2f
fdiv
StackMap locals:
StackMap stack: float
57: fstore 17
start local 17 58: iload 12
iload 11
if_icmple 61
59: fload 14
iload 12
iload 11
isub
i2f
fload 17
fmul
fadd
fstore 14
60: goto 62
61: StackMap locals: float
StackMap stack:
fload 14
fload 17
fadd
fstore 14
62: StackMap locals:
StackMap stack:
fload 14
fload 13
fsub
fconst_1
fcmpl
iflt 65
63: aload 7
fload 14
fload 13
fsub
f2i
invokevirtual org.eclipse.core.runtime.SubMonitor.worked:(I)V
64: fload 14
fstore 13
65: StackMap locals:
StackMap stack:
iload 11
istore 12
66: aload 15
astore 10
end local 17 end local 16 67: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 69
68: new java.lang.StringBuilder
dup
ldc "-> GOING TO SLEEP - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
69: StackMap locals:
StackMap stack:
ldc 50
invokestatic java.lang.Thread.sleep:(J)V
70: goto 72
StackMap locals:
StackMap stack: java.lang.InterruptedException
71: pop
end local 15 end local 11 72: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int org.eclipse.jdt.internal.core.search.processing.IJob top int float float
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobsCount:()I
dup
istore 11
start local 11 73: ifgt 47
end local 14 end local 13 end local 12 end local 11 end local 10 74: goto 85
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int
StackMap stack: java.lang.Throwable
75: astore 18
76: aload 0
dup
astore 19
monitorenter
77: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
78: aload 19
monitorexit
79: goto 82
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int top top top top top top top top java.lang.Throwable org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
80: aload 19
monitorexit
81: athrow
82: StackMap locals:
StackMap stack:
aload 8
ifnull 84
iload 9
iconst_m1
if_icmple 84
aload 8
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 84
83: aload 8
iload 9
invokevirtual java.lang.Thread.setPriority:(I)V
84: StackMap locals:
StackMap stack:
aload 18
athrow
85: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int
StackMap stack:
aload 0
dup
astore 19
monitorenter
86: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
iconst_1
isub
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
87: aload 19
monitorexit
88: goto 91
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int top top top top top top top top top org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
89: aload 19
monitorexit
90: athrow
91: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor int org.eclipse.core.runtime.SubMonitor java.lang.Thread int
StackMap stack:
aload 8
ifnull 93
iload 9
iconst_m1
if_icmple 93
aload 8
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 93
92: aload 8
iload 9
invokevirtual java.lang.Thread.setPriority:(I)V
end local 9 end local 8 end local 7 end local 6 93: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int org.eclipse.core.runtime.SubMonitor
StackMap stack:
aload 1
aload 5
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.execute:(Lorg/eclipse/core/runtime/IProgressMonitor;)Z
istore 4
end local 5 94: goto 100
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int
StackMap stack: java.lang.Throwable
95: astore 20
96: aload 3
invokestatic org.eclipse.core.runtime.SubMonitor.done:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
97: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 99
98: new java.lang.StringBuilder
dup
ldc "FINISHED concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
99: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 20
athrow
100: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager org.eclipse.jdt.internal.core.search.processing.IJob int org.eclipse.core.runtime.IProgressMonitor int
StackMap stack:
aload 3
invokestatic org.eclipse.core.runtime.SubMonitor.done:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
101: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 103
102: new java.lang.StringBuilder
dup
ldc "FINISHED concurrent job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
103: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 104 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
0 104 1 searchJob Lorg/eclipse/jdt/internal/core/search/processing/IJob;
0 104 2 waitingPolicy I
0 104 3 monitor Lorg/eclipse/core/runtime/IProgressMonitor;
4 104 4 status Z
5 94 5 subMonitor Lorg/eclipse/core/runtime/SubMonitor;
29 93 6 totalWork I
30 93 7 waitMonitor Lorg/eclipse/core/runtime/SubMonitor;
31 93 8 t Ljava/lang/Thread;
34 93 9 originalPriority I
43 74 10 previousJob Lorg/eclipse/jdt/internal/core/search/processing/IJob;
47 72 11 awaitingJobsCount I
73 74 11 awaitingJobsCount I
44 74 12 lastJobsCount I
45 74 13 lastWorked F
46 74 14 totalWorked F
50 72 15 currentJob Lorg/eclipse/jdt/internal/core/search/processing/IJob;
54 67 16 indexing Ljava/lang/String;
58 67 17 ratio F
Exception table:
from to target type
9 12 12 any
37 39 40 any
40 41 40 any
67 70 71 Class java.lang.InterruptedException
34 75 75 any
77 79 80 any
80 81 80 any
86 88 89 any
89 90 89 any
4 19 95 any
23 95 95 any
MethodParameters:
Name Flags
searchJob
waitingPolicy
monitor
public abstract java.lang.String processName();
descriptor: ()Ljava/lang/String;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public synchronized void request(org.eclipse.jdt.internal.core.search.processing.IJob);
descriptor: (Lorg/eclipse/jdt/internal/core/search/processing/IJob;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.ensureReadyToRun:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
arraylength
istore 2
start local 2 2: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
iconst_1
iadd
dup_x1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
iload 2
if_icmpne 14
3: aload 0
dup
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
isub
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
4: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
bipush 50
if_icmpge 12
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
if_icmpge 12
5: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iconst_0
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
istore 3
start local 3 7: goto 10
8: StackMap locals: int int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iload 3
aconst_null
aastore
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 2
if_icmplt 8
end local 3 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
aload 0
iload 2
iconst_2
imul
anewarray org.eclipse.jdt.internal.core.search.processing.IJob
dup_x1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
iconst_0
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
14: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
aload 1
aastore
15: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 18
16: new java.lang.StringBuilder
dup
ldc "REQUEST background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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.util.Util.verbose:(Ljava/lang/String;)V
17: new java.lang.StringBuilder
dup
ldc "AWAITING JOBS count: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobsCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.util.Util.verbose:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
0 20 1 job Lorg/eclipse/jdt/internal/core/search/processing/IJob;
2 20 2 size I
7 11 3 i I
MethodParameters:
Name Flags
job
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 2
1: ldc "Reset"
invokestatic org.eclipse.jdt.internal.core.util.Util.verbose:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
3: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
astore 1
start local 1 4: aload 2
monitorexit
5: goto 8
end local 1 StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager top org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
start local 1 8: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.Thread
StackMap stack:
aload 1
ifnull 11
9: aload 0
aconst_null
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.discardJobs:(Ljava/lang/String;)V
10: goto 21
11: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
12: aload 0
new java.lang.Thread
dup
aload 0
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.processName:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
13: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
14: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
iconst_4
invokevirtual java.lang.Thread.setPriority:(I)V
15: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
16: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
17: aload 2
monitorexit
18: goto 21
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.Thread org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
19: aload 2
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
4 6 1 thread Ljava/lang/Thread;
8 22 1 thread Ljava/lang/Thread;
Exception table:
from to target type
3 5 6 any
6 7 6 any
12 18 19 any
19 20 19 any
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: ldc -1
lstore 1
start local 1 1: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.activateProcessing:()V
2: aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
3: goto 57
4: StackMap locals: long
StackMap stack:
aload 0
dup
astore 4
monitorenter
5: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnonnull 7
aload 4
monitorexit
6: goto 57
7: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long top org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.currentJob:()Lorg/eclipse/jdt/internal/core/search/processing/IJob;
dup
astore 3
start local 3 8: ifnonnull 17
9: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
ifnull 12
10: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
invokevirtual org.eclipse.core.runtime.jobs.Job.cancel:()Z
pop
11: aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
12: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long org.eclipse.jdt.internal.core.search.processing.IJob org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack:
lload 1
lconst_0
lcmp
ifge 14
13: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
goto 15
14: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.notifyIdle:(J)V
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
16: goto 18
17: StackMap locals:
StackMap stack:
ldc -1
lstore 1
18: StackMap locals:
StackMap stack:
aload 4
monitorexit
19: goto 22
end local 3 StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long top org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
20: aload 4
monitorexit
21: athrow
start local 3 22: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long org.eclipse.jdt.internal.core.search.processing.IJob
StackMap stack:
aload 3
ifnonnull 26
23: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.notifyIdle:(J)V
24: ldc 500
invokestatic java.lang.Thread.sleep:(J)V
25: goto 57
26: StackMap locals:
StackMap stack:
getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 29
27: new java.lang.StringBuilder
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobsCount:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " awaiting jobs"
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.util.Util.verbose:(Ljava/lang/String;)V
28: new java.lang.StringBuilder
dup
ldc "STARTING background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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.util.Util.verbose:(Ljava/lang/String;)V
29: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.executing:Z
30: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
ifnonnull 35
31: aload 0
new org.eclipse.jdt.internal.core.search.processing.JobManager$1ProgressJob
dup
aload 0
getstatic org.eclipse.jdt.internal.core.util.Messages.jobmanager_indexing:Ljava/lang/String;
ldc ""
ldc ""
invokestatic org.eclipse.jdt.internal.core.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
invokespecial org.eclipse.jdt.internal.core.search.processing.JobManager$1ProgressJob.<init>:(Lorg/eclipse/jdt/internal/core/search/processing/JobManager;Ljava/lang/String;)V
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
32: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
bipush 30
invokevirtual org.eclipse.core.runtime.jobs.Job.setPriority:(I)V
33: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
iconst_1
invokevirtual org.eclipse.core.runtime.jobs.Job.setSystem:(Z)V
34: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
invokevirtual org.eclipse.core.runtime.jobs.Job.schedule:()V
35: StackMap locals:
StackMap stack:
aload 3
aconst_null
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.execute:(Lorg/eclipse/core/runtime/IProgressMonitor;)Z
pop
36: goto 47
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 4
38: aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.executing:Z
39: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 41
40: new java.lang.StringBuilder
dup
ldc "FINISHED background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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.util.Util.verbose:(Ljava/lang/String;)V
41: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.moveToNextJob:()V
42: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
ifne 46
aload 3
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.waitNeeded:()Z
ifeq 46
43: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 45
44: new java.lang.StringBuilder
dup
ldc "WAITING after job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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.util.Util.verbose:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
ldc 5
invokestatic java.lang.Thread.sleep:(J)V
46: StackMap locals:
StackMap stack:
aload 4
athrow
47: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.executing:Z
48: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 50
49: new java.lang.StringBuilder
dup
ldc "FINISHED background job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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.util.Util.verbose:(Ljava/lang/String;)V
50: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.moveToNextJob:()V
51: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingClients:I
ifne 57
aload 3
invokeinterface org.eclipse.jdt.internal.core.search.processing.IJob.waitNeeded:()Z
ifeq 57
52: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 54
53: new java.lang.StringBuilder
dup
ldc "WAITING after job - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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.util.Util.verbose:(Ljava/lang/String;)V
54: StackMap locals:
StackMap stack:
ldc 5
invokestatic java.lang.Thread.sleep:(J)V
end local 3 55: goto 57
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long
StackMap stack: java.lang.InterruptedException
56: pop
57: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnonnull 4
58: goto 73
StackMap locals:
StackMap stack: java.lang.RuntimeException
59: astore 3
start local 3 60: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnull 65
61: aload 3
ldc "Background Indexer Crash Recovery"
invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
62: aload 0
aconst_null
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.discardJobs:(Ljava/lang/String;)V
63: aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
64: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.reset:()V
65: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 3
athrow
end local 3 66: StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager long
StackMap stack: java.lang.Error
astore 3
start local 3 67: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
ifnull 72
aload 3
instanceof java.lang.ThreadDeath
ifne 72
68: aload 3
ldc "Background Indexer Crash Recovery"
invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
69: aload 0
aconst_null
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.discardJobs:(Ljava/lang/String;)V
70: aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
71: aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.reset:()V
72: StackMap locals: java.lang.Error
StackMap stack:
aload 3
athrow
end local 3 73: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
1 74 1 idlingStart J
8 20 3 job Lorg/eclipse/jdt/internal/core/search/processing/IJob;
22 55 3 job Lorg/eclipse/jdt/internal/core/search/processing/IJob;
60 66 3 e Ljava/lang/RuntimeException;
67 73 3 e Ljava/lang/Error;
Exception table:
from to target type
5 6 20 any
7 19 20 any
20 21 20 any
29 37 37 any
4 6 56 Class java.lang.InterruptedException
7 25 56 Class java.lang.InterruptedException
26 55 56 Class java.lang.InterruptedException
2 58 59 Class java.lang.RuntimeException
2 58 66 Class java.lang.Error
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic org.eclipse.jdt.internal.core.search.processing.JobManager.VERBOSE:Z
ifeq 2
1: ldc "Shutdown"
invokestatic org.eclipse.jdt.internal.core.util.Util.verbose:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.disable:()V
3: aload 0
aconst_null
invokevirtual org.eclipse.jdt.internal.core.search.processing.JobManager.discardJobs:(Ljava/lang/String;)V
4: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
astore 1
start local 1 5: aload 1
ifnull 14
6: aload 0
dup
astore 2
monitorenter
7: aload 0
aconst_null
putfield org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread:Ljava/lang/Thread;
8: aload 0
invokevirtual java.lang.Object.notifyAll:()V
9: aload 2
monitorexit
10: goto 13
StackMap locals: org.eclipse.jdt.internal.core.search.processing.JobManager java.lang.Thread org.eclipse.jdt.internal.core.search.processing.JobManager
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Thread.join:()V
14: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.progressJob:Lorg/eclipse/core/runtime/jobs/Job;
astore 2
start local 2 15: aload 2
ifnull 20
16: aload 2
invokevirtual org.eclipse.core.runtime.jobs.Job.cancel:()Z
pop
17: aload 2
invokevirtual org.eclipse.core.runtime.jobs.Job.join:()V
end local 2 18: goto 20
StackMap locals:
StackMap stack: java.lang.InterruptedException
19: pop
20: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
5 21 1 thread Ljava/lang/Thread;
15 18 2 job Lorg/eclipse/core/runtime/jobs/Job;
Exception table:
from to target type
7 10 11 any
11 12 11 any
5 18 19 Class java.lang.InterruptedException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuffer
dup
bipush 10
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 1
start local 1 1: aload 1
ldc "Enable count:"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.enableCount:I
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
2: aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobEnd:I
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
isub
iconst_1
iadd
istore 2
start local 2 3: aload 1
ldc "Jobs in queue:"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
iload 2
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
4: iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: java.lang.StringBuffer int int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
new java.lang.StringBuilder
dup
ldc " - job["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.awaitingJobs:[Lorg/eclipse/jdt/internal/core/search/processing/IJob;
aload 0
getfield org.eclipse.jdt.internal.core.search.processing.JobManager.jobStart:I
iload 3
iadd
aaload
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
bipush 10
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 2
if_icmpge 9
iload 3
bipush 15
if_icmplt 6
end local 3 9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/core/search/processing/JobManager;
1 10 1 buffer Ljava/lang/StringBuffer;
3 10 2 numJobs I
5 9 3 i I
}
SourceFile: "JobManager.java"
NestMembers:
org.eclipse.jdt.internal.core.search.processing.JobManager$1ProgressJob
InnerClasses:
ProgressJob = org.eclipse.jdt.internal.core.search.processing.JobManager$1ProgressJob