public class org.apache.lucene.search.ControlledRealTimeReopenThread<T> extends java.lang.Thread implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.lucene.search.ControlledRealTimeReopenThread
super_class: java.lang.Thread
{
private final org.apache.lucene.search.ReferenceManager<T> manager;
descriptor: Lorg/apache/lucene/search/ReferenceManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/apache/lucene/search/ReferenceManager<TT;>;
private final long targetMaxStaleNS;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long targetMinStaleNS;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.lucene.index.IndexWriter writer;
descriptor: Lorg/apache/lucene/index/IndexWriter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean finish;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long waitingGen;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long searchingGen;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private long refreshStartGen;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.locks.ReentrantLock reopenLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Condition reopenCond;
descriptor: Ljava/util/concurrent/locks/Condition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.apache.lucene.index.IndexWriter, org.apache.lucene.search.ReferenceManager<T>, double, );
descriptor: (Lorg/apache/lucene/index/IndexWriter;Lorg/apache/lucene/search/ReferenceManager;DD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
invokespecial java.lang.Thread.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.newCondition:()Ljava/util/concurrent/locks/Condition;
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenCond:Ljava/util/concurrent/locks/Condition;
3: dload 3
dload 5
dcmpg
ifge 5
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "targetMaxScaleSec (= "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
dload 3
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
ldc ") < targetMinStaleSec (="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 5
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.apache.lucene.search.ControlledRealTimeReopenThread org.apache.lucene.index.IndexWriter org.apache.lucene.search.ReferenceManager double double
StackMap stack:
aload 0
aload 1
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.writer:Lorg/apache/lucene/index/IndexWriter;
6: aload 0
aload 2
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.manager:Lorg/apache/lucene/search/ReferenceManager;
7: aload 0
ldc 1.0E9
dload 3
dmul
d2l
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.targetMaxStaleNS:J
8: aload 0
ldc 1.0E9
dload 5
dmul
d2l
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.targetMinStaleNS:J
9: aload 2
new org.apache.lucene.search.ControlledRealTimeReopenThread$HandleRefresh
dup
aload 0
invokespecial org.apache.lucene.search.ControlledRealTimeReopenThread$HandleRefresh.<init>:(Lorg/apache/lucene/search/ControlledRealTimeReopenThread;)V
invokevirtual org.apache.lucene.search.ReferenceManager.addListener:(Lorg/apache/lucene/search/ReferenceManager$RefreshListener;)V
10: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
0 11 1 writer Lorg/apache/lucene/index/IndexWriter;
0 11 2 manager Lorg/apache/lucene/search/ReferenceManager<TT;>;
0 11 3 targetMaxStaleSec D
0 11 5 targetMinStaleSec D
Signature: (Lorg/apache/lucene/index/IndexWriter;Lorg/apache/lucene/search/ReferenceManager<TT;>;DD)V
MethodParameters:
Name Flags
writer
manager
targetMaxStaleSec
targetMinStaleSec
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.finish:Z
1: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenCond:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.signal:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 0
invokevirtual org.apache.lucene.search.ControlledRealTimeReopenThread.join:()V
9: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
10: astore 1
start local 1 11: new org.apache.lucene.util.ThreadInterruptedException
dup
aload 1
invokespecial org.apache.lucene.util.ThreadInterruptedException.<init>:(Ljava/lang/InterruptedException;)V
athrow
end local 1 12: StackMap locals:
StackMap stack:
aload 0
ldc 9223372036854775807
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.searchingGen:J
13: aload 0
invokevirtual java.lang.Object.notifyAll:()V
14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
11 12 1 ie Ljava/lang/InterruptedException;
Exception table:
from to target type
2 4 4 any
8 9 10 Class java.lang.InterruptedException
public void waitForGeneration(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
iconst_m1
invokevirtual org.apache.lucene.search.ControlledRealTimeReopenThread.waitForGeneration:(JI)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
0 2 1 targetGen J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
targetGen
public synchronized boolean waitForGeneration(long, int);
descriptor: (JI)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 3 0: lload 1
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.searchingGen:J
lcmp
ifle 19
1: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.waitingGen:J
lload 1
invokestatic java.lang.Math.max:(JJ)J
putfield org.apache.lucene.search.ControlledRealTimeReopenThread.waitingGen:J
3: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenCond:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.signal:()V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 4
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: invokestatic java.lang.System.nanoTime:()J
ldc 1000000
ldiv
lstore 4
start local 4 10: goto 18
11: StackMap locals: long
StackMap stack:
iload 3
ifge 14
12: aload 0
invokevirtual java.lang.Object.wait:()V
13: goto 18
14: StackMap locals:
StackMap stack:
lload 4
iload 3
i2l
ladd
invokestatic java.lang.System.nanoTime:()J
ldc 1000000
ldiv
lsub
lstore 6
start local 6 15: lload 6
lconst_0
lcmp
ifgt 17
16: iconst_0
ireturn
17: StackMap locals: long
StackMap stack:
aload 0
lload 6
invokevirtual java.lang.Object.wait:(J)V
end local 6 18: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.searchingGen:J
lcmp
ifgt 11
end local 4 19: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
0 20 1 targetGen J
0 20 3 maxMS I
10 19 4 startMS J
15 18 6 msLeft J
Exception table:
from to target type
3 5 5 any
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
targetGen
maxMS
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=1
start local 0 0: invokestatic java.lang.System.nanoTime:()J
lstore 1
start local 1 1: goto 31
2: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.waitingGen:J
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.searchingGen:J
lcmp
ifle 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 3
start local 3 6: lload 1
iload 3
ifeq 7
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.targetMinStaleNS:J
goto 8
StackMap locals: org.apache.lucene.search.ControlledRealTimeReopenThread long int
StackMap stack: long
7: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.targetMaxStaleNS:J
StackMap locals: org.apache.lucene.search.ControlledRealTimeReopenThread long int
StackMap stack: long long
8: ladd
lstore 4
start local 4 9: lload 4
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 6
start local 6 10: lload 6
lconst_0
lcmp
ifle 13
11: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenCond:Ljava/util/concurrent/locks/Condition;
lload 6
invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
pop2
12: goto 22
13: StackMap locals: long long
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: goto 24
end local 6 end local 4 end local 3 15: StackMap locals: org.apache.lucene.search.ControlledRealTimeReopenThread long
StackMap stack: java.lang.InterruptedException
pop
16: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
17: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: return
19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
20: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
21: aload 8
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.reopenLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
23: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.finish:Z
ifeq 2
24: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.finish:Z
ifeq 26
25: goto 32
26: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 1
27: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.manager:Lorg/apache/lucene/search/ReferenceManager;
invokevirtual org.apache.lucene.search.ReferenceManager.maybeRefreshBlocking:()V
28: goto 31
StackMap locals:
StackMap stack: java.io.IOException
29: astore 3
start local 3 30: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 31: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.finish:Z
ifeq 23
32: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
1 33 1 lastReopenStartNS J
6 15 3 hasWaiting Z
9 15 4 nextReopenStartNS J
10 15 6 sleepNS J
30 31 3 ioe Ljava/io/IOException;
Exception table:
from to target type
3 13 15 Class java.lang.InterruptedException
3 13 19 any
15 17 19 any
27 28 29 Class java.io.IOException
public long getSearchingGen();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.lucene.search.ControlledRealTimeReopenThread.searchingGen:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/search/ControlledRealTimeReopenThread<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Thread;Ljava/io/Closeable;
SourceFile: "ControlledRealTimeReopenThread.java"
NestMembers:
org.apache.lucene.search.ControlledRealTimeReopenThread$HandleRefresh
InnerClasses:
private HandleRefresh = org.apache.lucene.search.ControlledRealTimeReopenThread$HandleRefresh of org.apache.lucene.search.ControlledRealTimeReopenThread
public abstract RefreshListener = org.apache.lucene.search.ReferenceManager$RefreshListener of org.apache.lucene.search.ReferenceManager