public class org.hsqldb.TransactionManagerMVCC extends org.hsqldb.TransactionManagerCommon implements org.hsqldb.TransactionManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.TransactionManagerMVCC
super_class: org.hsqldb.TransactionManagerCommon
{
org.hsqldb.lib.HsqlDeque committedTransactions;
descriptor: Lorg/hsqldb/lib/HsqlDeque;
flags: (0x0000)
org.hsqldb.lib.LongDeque committedTransactionTimestamps;
descriptor: Lorg/hsqldb/lib/LongDeque;
flags: (0x0000)
boolean isLockedMode;
descriptor: Z
flags: (0x0000)
org.hsqldb.Session catalogWriteSession;
descriptor: Lorg/hsqldb/Session;
flags: (0x0000)
long lockTxTs;
descriptor: J
flags: (0x0000)
long lockSessionId;
descriptor: J
flags: (0x0000)
long unlockTxTs;
descriptor: J
flags: (0x0000)
long unlockSessionId;
descriptor: J
flags: (0x0000)
int redoCount;
descriptor: I
flags: (0x0000)
public void <init>(org.hsqldb.Database);
descriptor: (Lorg/hsqldb/Database;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.hsqldb.TransactionManagerCommon.<init>:(Lorg/hsqldb/Database;)V
1: aload 0
new org.hsqldb.lib.HsqlDeque
dup
invokespecial org.hsqldb.lib.HsqlDeque.<init>:()V
putfield org.hsqldb.TransactionManagerMVCC.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
2: aload 0
new org.hsqldb.lib.LongDeque
dup
invokespecial org.hsqldb.lib.LongDeque.<init>:()V
putfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
3: aload 0
iconst_0
putfield org.hsqldb.TransactionManagerMVCC.redoCount:I
4: aload 0
aload 0
getfield org.hsqldb.TransactionManagerMVCC.database:Lorg/hsqldb/Database;
getfield org.hsqldb.Database.sessionManager:Lorg/hsqldb/SessionManager;
invokevirtual org.hsqldb.SessionManager.getSysLobSession:()Lorg/hsqldb/Session;
putfield org.hsqldb.TransactionManagerMVCC.lobSession:Lorg/hsqldb/Session;
5: aload 0
iconst_2
putfield org.hsqldb.TransactionManagerMVCC.txModel:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 7 1 db Lorg/hsqldb/Database;
MethodParameters:
Name Flags
db
public long getGlobalChangeTimestamp();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.globalChangeTimestamp:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/TransactionManagerMVCC;
public void setGlobalChangeTimestamp(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.globalChangeTimestamp:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 2 1 ts J
MethodParameters:
Name Flags
ts
public boolean isMVRows();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/TransactionManagerMVCC;
public boolean isMVCC();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/TransactionManagerMVCC;
public boolean is2PL();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
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/hsqldb/TransactionManagerMVCC;
public int getTransactionControl();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_2
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/TransactionManagerMVCC;
public void setTransactionControl(org.hsqldb.Session, int);
descriptor: (Lorg/hsqldb/Session;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial org.hsqldb.TransactionManagerCommon.setTransactionControl:(Lorg/hsqldb/Session;I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 2 1 session Lorg/hsqldb/Session;
0 2 2 mode I
MethodParameters:
Name Flags
session
mode
public void completeActions(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, 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/hsqldb/TransactionManagerMVCC;
0 1 1 session Lorg/hsqldb/Session;
MethodParameters:
Name Flags
session
public boolean prepareCommitActions(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.hsqldb.Session.abortTransaction:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
3: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 12
6: StackMap locals: int int
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowAction
astore 4
start local 4 7: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.canCommit:(Lorg/hsqldb/Session;)Z
ifne 11
8: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
9: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
10: iconst_0
ireturn
end local 4 11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 2
if_icmplt 6
end local 3 13: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
14: iconst_0
istore 3
start local 3 15: goto 19
16: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowAction
astore 4
start local 4 17: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.prepareCommit:(Lorg/hsqldb/Session;)V
end local 4 18: iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
iload 2
if_icmplt 16
end local 3 20: iconst_0
istore 3
start local 3 21: goto 26
22: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
iload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowActionBase
getfield org.hsqldb.RowActionBase.session:Lorg/hsqldb/Session;
23: astore 4
start local 4 24: aload 4
iconst_1
putfield org.hsqldb.Session.abortTransaction:Z
end local 4 25: iinc 3 1
StackMap locals:
StackMap stack:
26: iload 3
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 22
end local 3 27: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
28: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
29: iconst_1
ireturn
end local 2 30: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session
StackMap stack: java.lang.Throwable
astore 5
31: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
32: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
33: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 34 1 session Lorg/hsqldb/Session;
4 30 2 limit I
5 13 3 i I
7 11 4 action Lorg/hsqldb/RowAction;
15 20 3 i I
17 18 4 action Lorg/hsqldb/RowAction;
21 27 3 i I
24 25 4 current Lorg/hsqldb/Session;
Exception table:
from to target type
3 8 30 any
11 27 30 any
MethodParameters:
Name Flags
session
public boolean commitTransaction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.hsqldb.Session.abortTransaction:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
3: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 12
6: StackMap locals: int int
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowAction
astore 4
start local 4 7: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.canCommit:(Lorg/hsqldb/Session;)Z
ifne 11
8: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
9: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
10: iconst_0
ireturn
end local 4 11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 2
if_icmplt 6
end local 3 13: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
14: aload 1
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.Session.transactionEndTimestamp:J
15: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.endTransaction:(Lorg/hsqldb/Session;)V
16: iconst_0
istore 3
start local 3 17: goto 21
18: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 3
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowAction
astore 4
start local 4 19: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.commit:(Lorg/hsqldb/Session;)I
pop
end local 4 20: iinc 3 1
StackMap locals:
StackMap stack:
21: iload 3
iload 2
if_icmplt 18
end local 3 22: iconst_0
istore 3
start local 3 23: goto 28
24: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
iload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowActionBase
getfield org.hsqldb.RowActionBase.session:Lorg/hsqldb/Session;
25: astore 4
start local 4 26: aload 4
iconst_1
putfield org.hsqldb.Session.abortTransaction:Z
end local 4 27: iinc 3 1
StackMap locals:
StackMap stack:
28: iload 3
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 24
end local 3 29: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.adjustLobUsage:(Lorg/hsqldb/Session;)V
30: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.persistCommit:(Lorg/hsqldb/Session;)V
31: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 3
start local 3 32: iload 3
iload 2
if_icmple 39
33: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.getArray:()[Ljava/lang/Object;
astore 4
start local 4 34: aload 0
aload 4
iload 2
iload 3
35: aload 1
getfield org.hsqldb.Session.actionTimestamp:J
36: invokevirtual org.hsqldb.TransactionManagerMVCC.mergeTransaction:([Ljava/lang/Object;IIJ)V
37: aload 0
aload 1
aload 4
iload 2
iload 3
invokevirtual org.hsqldb.TransactionManagerMVCC.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
38: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.setSize:(I)V
end local 4 39: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.hsqldb.TransactionManagerMVCC.lobSession:Lorg/hsqldb/Session;
if_acmpeq 42
40: aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getFirstLiveTransactionTimestamp:()J
41: aload 1
getfield org.hsqldb.Session.actionTimestamp:J
lcmp
ifle 46
42: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.getArray:()[Ljava/lang/Object;
astore 4
start local 4 43: aload 0
aload 4
iconst_0
iload 2
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
invokevirtual org.hsqldb.TransactionManagerMVCC.mergeTransaction:([Ljava/lang/Object;IIJ)V
44: aload 0
aload 1
aload 4
iconst_0
iload 2
invokevirtual org.hsqldb.TransactionManagerMVCC.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
end local 4 45: goto 49
46: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
ifle 49
47: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.toArray:()[Ljava/lang/Object;
astore 4
start local 4 48: aload 0
aload 1
aload 4
invokevirtual org.hsqldb.TransactionManagerMVCC.addToCommittedQueue:(Lorg/hsqldb/Session;[Ljava/lang/Object;)V
end local 4 49: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.endTransactionTPL:(Lorg/hsqldb/Session;)V
50: aload 1
iconst_0
putfield org.hsqldb.Session.isTransaction:Z
51: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.countDownLatches:(Lorg/hsqldb/Session;)V
end local 3 end local 2 52: goto 57
StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session
StackMap stack: java.lang.Throwable
53: astore 5
54: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
55: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
56: aload 5
athrow
57: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
58: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
59: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 60 1 session Lorg/hsqldb/Session;
4 52 2 limit I
5 13 3 i I
7 11 4 action Lorg/hsqldb/RowAction;
17 22 3 i I
19 20 4 action Lorg/hsqldb/RowAction;
23 29 3 i I
26 27 4 current Lorg/hsqldb/Session;
32 52 3 newLimit I
34 39 4 list [Ljava/lang/Object;
43 45 4 list [Ljava/lang/Object;
48 49 4 list [Ljava/lang/Object;
Exception table:
from to target type
3 8 53 any
11 53 53 any
MethodParameters:
Name Flags
session
public void rollback(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 1
iconst_0
putfield org.hsqldb.Session.abortTransaction:Z
2: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
3: aload 1
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.Session.transactionEndTimestamp:J
4: aload 0
aload 1
iconst_0
aload 1
getfield org.hsqldb.Session.transactionTimestamp:J
invokevirtual org.hsqldb.TransactionManagerMVCC.rollbackPartial:(Lorg/hsqldb/Session;IJ)V
5: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.endTransaction:(Lorg/hsqldb/Session;)V
6: aload 1
invokevirtual org.hsqldb.Session.logSequences:()V
7: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.endTransactionTPL:(Lorg/hsqldb/Session;)V
8: aload 1
iconst_0
putfield org.hsqldb.Session.isTransaction:Z
9: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.countDownLatches:(Lorg/hsqldb/Session;)V
10: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
12: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
13: aload 2
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 16 1 session Lorg/hsqldb/Session;
Exception table:
from to target type
1 11 11 any
MethodParameters:
Name Flags
session
public void rollbackSavepoint(org.hsqldb.Session, int);
descriptor: (Lorg/hsqldb/Session;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepointTimestamps:Lorg/hsqldb/lib/LongDeque;
iload 2
invokevirtual org.hsqldb.lib.LongDeque.get:(I)J
lstore 3
start local 3 1: aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepoints:Lorg/hsqldb/lib/HashMappedList;
iload 2
invokevirtual org.hsqldb.lib.HashMappedList.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
astore 5
start local 5 2: aload 5
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 3: goto 8
4: StackMap locals: long java.lang.Integer int
StackMap stack:
aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepoints:Lorg/hsqldb/lib/HashMappedList;
5: aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepoints:Lorg/hsqldb/lib/HashMappedList;
invokevirtual org.hsqldb.lib.HashMappedList.size:()I
iconst_1
isub
6: invokevirtual org.hsqldb.lib.HashMappedList.remove:(I)Ljava/lang/Object;
pop
7: aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepointTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.removeLast:()J
pop2
8: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.savepoints:Lorg/hsqldb/lib/HashMappedList;
invokevirtual org.hsqldb.lib.HashMappedList.size:()I
iload 2
iconst_1
iadd
if_icmpgt 4
9: aload 0
aload 1
iload 6
lload 3
invokevirtual org.hsqldb.TransactionManagerMVCC.rollbackPartial:(Lorg/hsqldb/Session;IJ)V
10: return
end local 6 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/hsqldb/TransactionManagerMVCC;
0 11 1 session Lorg/hsqldb/Session;
0 11 2 index I
1 11 3 timestamp J
2 11 5 oi Ljava/lang/Integer;
3 11 6 start I
MethodParameters:
Name Flags
session
index
public void rollbackAction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
getfield org.hsqldb.Session.actionIndex:I
1: aload 1
getfield org.hsqldb.Session.actionStartTimestamp:J
2: invokevirtual org.hsqldb.TransactionManagerMVCC.rollbackPartial:(Lorg/hsqldb/Session;IJ)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 4 1 session Lorg/hsqldb/Session;
MethodParameters:
Name Flags
session
public void rollbackPartial(org.hsqldb.Session, int, long);
descriptor: (Lorg/hsqldb/Session;IJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 5
start local 5 1: iload 2
iload 5
if_icmpne 3
2: return
3: StackMap locals: int
StackMap stack:
iload 5
iconst_1
isub
istore 6
start local 6 4: goto 29
5: StackMap locals: int
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowAction
astore 7
start local 7 6: aload 7
ifnull 28
aload 7
getfield org.hsqldb.RowAction.type:B
ifeq 28
7: aload 7
getfield org.hsqldb.RowAction.type:B
iconst_3
if_icmpne 9
8: goto 28
9: StackMap locals: org.hsqldb.RowAction
StackMap stack:
aload 7
getfield org.hsqldb.RowAction.memoryRow:Lorg/hsqldb/Row;
astore 8
start local 8 10: aload 8
ifnonnull 12
11: aload 7
getfield org.hsqldb.RowAction.store:Lorg/hsqldb/persist/PersistentStore;
aload 7
invokevirtual org.hsqldb.RowAction.getPos:()J
iconst_0
invokeinterface org.hsqldb.persist.PersistentStore.get:(JZ)Lorg/hsqldb/persist/CachedObject;
checkcast org.hsqldb.Row
astore 8
12: StackMap locals: org.hsqldb.Row
StackMap stack:
aload 8
ifnonnull 14
13: goto 28
14: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
15: aload 7
aload 1
lload 3
invokevirtual org.hsqldb.RowAction.rollback:(Lorg/hsqldb/Session;J)V
16: aload 7
aload 1
lload 3
aload 8
invokevirtual org.hsqldb.RowAction.mergeRollback:(Lorg/hsqldb/Session;JLorg/hsqldb/Row;)I
istore 9
start local 9 17: aload 7
getfield org.hsqldb.RowAction.type:B
iconst_3
if_icmpne 22
18: aload 7
getfield org.hsqldb.RowAction.deleteComplete:Z
ifeq 21
19: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
20: goto 28
21: StackMap locals: int
StackMap stack:
aload 7
iconst_1
putfield org.hsqldb.RowAction.deleteComplete:Z
22: StackMap locals:
StackMap stack:
aload 7
getfield org.hsqldb.RowAction.store:Lorg/hsqldb/persist/PersistentStore;
aload 1
aload 8
iload 9
aload 0
getfield org.hsqldb.TransactionManagerMVCC.txModel:I
invokeinterface org.hsqldb.persist.PersistentStore.rollbackRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;II)V
end local 9 23: goto 27
StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session int long int int org.hsqldb.RowAction org.hsqldb.Row
StackMap stack: java.lang.Throwable
24: astore 10
25: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
26: aload 10
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
end local 8 end local 7 28: StackMap locals:
StackMap stack:
iinc 6 -1
StackMap locals:
StackMap stack:
29: iload 6
iload 2
if_icmpge 5
end local 6 30: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.setSize:(I)V
31: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 32 1 session Lorg/hsqldb/Session;
0 32 2 start I
0 32 3 timestamp J
1 32 5 limit I
4 30 6 i I
6 28 7 action Lorg/hsqldb/RowAction;
10 28 8 row Lorg/hsqldb/Row;
17 23 9 type I
Exception table:
from to target type
15 19 24 any
21 24 24 any
MethodParameters:
Name Flags
session
start
timestamp
public org.hsqldb.RowAction addDeleteAction(org.hsqldb.Session, org.hsqldb.Table, org.hsqldb.persist.PersistentStore, org.hsqldb.Row, int[]);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;[I)Lorg/hsqldb/RowAction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, 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
aload 2
aload 3
aload 4
1: aload 5
2: invokevirtual org.hsqldb.TransactionManagerMVCC.addDeleteActionToRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;[I)Lorg/hsqldb/RowAction;
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: iconst_1
istore 8
start local 8 5: aload 6
ifnonnull 44
6: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
7: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.rollbackAction:(Lorg/hsqldb/Session;)V
8: aload 1
getfield org.hsqldb.Session.isolationLevel:I
iconst_4
if_icmpeq 12
9: aload 1
10: getfield org.hsqldb.Session.isolationLevel:I
bipush 8
11: if_icmpne 16
12: StackMap locals: org.hsqldb.RowAction org.hsqldb.Session int
StackMap stack:
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
13: aload 1
iconst_0
putfield org.hsqldb.Session.redoAction:Z
14: aload 1
aload 1
getfield org.hsqldb.Session.txConflictRollback:Z
putfield org.hsqldb.Session.abortTransaction:Z
15: sipush 4871
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
16: StackMap locals:
StackMap stack:
aload 4
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
ifnull 21
aload 4
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
invokevirtual org.hsqldb.RowAction.isDeleted:()Z
ifeq 21
17: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
18: aload 1
iconst_1
putfield org.hsqldb.Session.redoAction:Z
19: aload 0
dup
getfield org.hsqldb.TransactionManagerMVCC.redoCount:I
iconst_1
iadd
putfield org.hsqldb.TransactionManagerMVCC.redoCount:I
20: sipush 4871
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
21: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.isEmpty:()Z
ifeq 22
iconst_0
goto 23
StackMap locals:
StackMap stack:
22: iconst_1
StackMap locals:
StackMap stack: int
23: istore 8
24: iload 8
ifeq 30
25: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
iconst_0
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowActionBase
getfield org.hsqldb.RowActionBase.session:Lorg/hsqldb/Session;
26: astore 7
27: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
28: aload 7
ifnull 30
29: aload 0
aload 1
aload 7
invokevirtual org.hsqldb.TransactionManagerMVCC.checkDeadlock:(Lorg/hsqldb/Session;Lorg/hsqldb/Session;)Z
istore 8
30: StackMap locals:
StackMap stack:
iload 8
ifeq 38
31: aload 1
iconst_1
putfield org.hsqldb.Session.redoAction:Z
32: aload 7
ifnull 36
33: aload 7
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 1
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
34: aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 7
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
35: aload 1
getfield org.hsqldb.Session.latch:Lorg/hsqldb/lib/CountUpDownLatch;
aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
invokevirtual org.hsqldb.lib.CountUpDownLatch.setCount:(I)Z
pop
36: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.hsqldb.TransactionManagerMVCC.redoCount:I
iconst_1
iadd
putfield org.hsqldb.TransactionManagerMVCC.redoCount:I
37: goto 40
38: StackMap locals:
StackMap stack:
aload 1
iconst_0
putfield org.hsqldb.Session.redoAction:Z
39: aload 1
aload 1
getfield org.hsqldb.Session.txConflictRollback:Z
putfield org.hsqldb.Session.abortTransaction:Z
40: StackMap locals:
StackMap stack:
sipush 4871
invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
athrow
41: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
42: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
43: aload 9
athrow
44: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
aload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
45: aload 6
areturn
end local 8 end local 7 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 46 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 46 1 session Lorg/hsqldb/Session;
0 46 2 table Lorg/hsqldb/Table;
0 46 3 store Lorg/hsqldb/persist/PersistentStore;
0 46 4 row Lorg/hsqldb/Row;
0 46 5 colMap [I
3 46 6 action Lorg/hsqldb/RowAction;
4 46 7 actionSession Lorg/hsqldb/Session;
5 46 8 redoAction Z
Exception table:
from to target type
7 41 41 any
MethodParameters:
Name Flags
session
table
store
row
colMap
public void addInsertAction(org.hsqldb.Session, org.hsqldb.Table, org.hsqldb.persist.PersistentStore, org.hsqldb.Row, int[]);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
astore 6
start local 6 1: aconst_null
astore 7
start local 7 2: iconst_0
istore 8
start local 8 3: iconst_1
istore 9
start local 9 4: aconst_null
astore 10
start local 10 5: aload 6
ifnonnull 9
6: sipush 458
7: ldc "TXManager - null insert action "
8: invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
athrow
9: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session org.hsqldb.Table org.hsqldb.persist.PersistentStore org.hsqldb.Row int[] org.hsqldb.RowAction org.hsqldb.Session int int org.hsqldb.HsqlException
StackMap stack:
aload 3
aload 1
aload 4
invokeinterface org.hsqldb.persist.PersistentStore.indexRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;)V
10: goto 16
StackMap locals:
StackMap stack: org.hsqldb.HsqlException
11: astore 11
start local 11 12: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.isEmpty:()Z
ifeq 14
13: aload 11
athrow
14: StackMap locals: org.hsqldb.HsqlException
StackMap stack:
iconst_1
istore 8
15: aload 11
astore 10
end local 11 16: StackMap locals:
StackMap stack:
iload 8
ifne 22
17: aload 2
getfield org.hsqldb.Table.persistenceScope:I
bipush 20
if_icmpne 20
18: aload 4
aconst_null
putfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
19: return
20: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
aload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
21: return
22: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
23: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.rollbackAction:(Lorg/hsqldb/Session;)V
24: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
iconst_0
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.RowActionBase
25: astore 11
start local 11 26: aload 11
getfield org.hsqldb.RowActionBase.session:Lorg/hsqldb/Session;
astore 7
27: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
28: aload 11
getfield org.hsqldb.RowActionBase.commitTimestamp:J
lconst_0
lcmp
ifeq 30
29: iconst_0
istore 9
30: StackMap locals: org.hsqldb.RowActionBase
StackMap stack:
aload 1
getfield org.hsqldb.Session.isolationLevel:I
tableswitch { // 4 - 8
4: 31
5: 33
6: 33
7: 33
8: 31
default: 33
}
31: StackMap locals:
StackMap stack:
iconst_0
istore 8
32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 7
invokevirtual org.hsqldb.TransactionManagerMVCC.checkDeadlock:(Lorg/hsqldb/Session;Lorg/hsqldb/Session;)Z
istore 8
34: StackMap locals:
StackMap stack:
iload 8
ifeq 42
35: aload 1
iconst_1
putfield org.hsqldb.Session.redoAction:Z
36: iload 9
ifeq 40
37: aload 7
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 1
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
38: aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 7
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
39: aload 1
getfield org.hsqldb.Session.latch:Lorg/hsqldb/lib/CountUpDownLatch;
aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
invokevirtual org.hsqldb.lib.CountUpDownLatch.setCount:(I)Z
pop
40: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.hsqldb.TransactionManagerMVCC.redoCount:I
iconst_1
iadd
putfield org.hsqldb.TransactionManagerMVCC.redoCount:I
41: goto 44
42: StackMap locals:
StackMap stack:
aload 1
aload 1
getfield org.hsqldb.Session.txConflictRollback:Z
putfield org.hsqldb.Session.abortTransaction:Z
43: aload 1
iconst_0
putfield org.hsqldb.Session.redoAction:Z
44: StackMap locals:
StackMap stack:
aload 10
sipush 4871
aconst_null
invokestatic org.hsqldb.error.Error.error:(Ljava/lang/Throwable;ILjava/lang/String;)Lorg/hsqldb/HsqlException;
athrow
end local 11 45: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session org.hsqldb.Table org.hsqldb.persist.PersistentStore org.hsqldb.Row int[] org.hsqldb.RowAction org.hsqldb.Session int int org.hsqldb.HsqlException
StackMap stack: java.lang.Throwable
astore 12
46: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
47: aload 12
athrow
end local 10 end local 9 end local 8 end local 7 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 48 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 48 1 session Lorg/hsqldb/Session;
0 48 2 table Lorg/hsqldb/Table;
0 48 3 store Lorg/hsqldb/persist/PersistentStore;
0 48 4 row Lorg/hsqldb/Row;
0 48 5 changedColumns [I
1 48 6 action Lorg/hsqldb/RowAction;
2 48 7 actionSession Lorg/hsqldb/Session;
3 48 8 redoAction Z
4 48 9 redoWait Z
5 48 10 cause Lorg/hsqldb/HsqlException;
12 16 11 e Lorg/hsqldb/HsqlException;
26 45 11 otherAction Lorg/hsqldb/RowActionBase;
Exception table:
from to target type
9 10 11 Class org.hsqldb.HsqlException
23 45 45 any
MethodParameters:
Name Flags
session
table
store
row
changedColumns
public void addInsertAction(org.hsqldb.Session, org.hsqldb.persist.PersistentStore, org.hsqldb.Row);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
astore 4
start local 4 1: aload 4
ifnonnull 5
2: sipush 458
3: ldc "null insert action "
4: invokestatic org.hsqldb.error.Error.runtimeError:(ILjava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals: org.hsqldb.RowAction
StackMap stack:
aload 2
aload 1
aload 3
invokeinterface org.hsqldb.persist.PersistentStore.indexRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;)V
6: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
aload 4
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 8 1 session Lorg/hsqldb/Session;
0 8 2 store Lorg/hsqldb/persist/PersistentStore;
0 8 3 row Lorg/hsqldb/Row;
1 8 4 action Lorg/hsqldb/RowAction;
MethodParameters:
Name Flags
session
store
row
public boolean canRead(org.hsqldb.Session, org.hsqldb.persist.PersistentStore, org.hsqldb.Row, int, int[]);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;I[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
astore 6
start local 6 1: aload 6
ifnonnull 3
2: iconst_1
ireturn
3: StackMap locals: org.hsqldb.RowAction
StackMap stack:
aload 6
getfield org.hsqldb.RowAction.table:Lorg/hsqldb/TableBase;
getfield org.hsqldb.TableBase.tableType:I
iconst_3
if_icmpne 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iload 4
ifne 7
6: aload 6
aload 1
iconst_0
invokevirtual org.hsqldb.RowAction.canRead:(Lorg/hsqldb/Session;I)Z
ireturn
7: StackMap locals:
StackMap stack:
iload 4
iconst_2
if_icmpne 9
8: aload 6
aload 1
iconst_0
invokevirtual org.hsqldb.RowAction.canRead:(Lorg/hsqldb/Session;I)Z
ireturn
9: StackMap locals:
StackMap stack:
aload 6
aload 1
iload 4
invokevirtual org.hsqldb.RowAction.canRead:(Lorg/hsqldb/Session;I)Z
ireturn
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 10 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 10 1 session Lorg/hsqldb/Session;
0 10 2 store Lorg/hsqldb/persist/PersistentStore;
0 10 3 row Lorg/hsqldb/Row;
0 10 4 mode I
0 10 5 colMap [I
1 10 6 action Lorg/hsqldb/RowAction;
MethodParameters:
Name Flags
session
store
row
mode
colMap
void addToCommittedQueue(org.hsqldb.Session, java.lang.Object[]);
descriptor: (Lorg/hsqldb/Session;[Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
dup
astore 3
monitorenter
1: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
aload 2
invokevirtual org.hsqldb.lib.HsqlDeque.addLast:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
invokevirtual org.hsqldb.lib.LongDeque.addLast:(J)Z
pop
3: aload 3
monitorexit
4: goto 7
StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session java.lang.Object[] org.hsqldb.lib.LongDeque
StackMap stack: java.lang.Throwable
5: aload 3
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 8 1 session Lorg/hsqldb/Session;
0 8 2 list [Ljava/lang/Object;
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
session
list
void mergeExpiredTransactions(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getFirstLiveTransactionTimestamp:()J
lstore 2
start local 2 1: StackMap locals: long
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
dup
astore 7
monitorenter
2: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.isEmpty:()Z
ifeq 5
3: aload 7
monitorexit
4: goto 19
5: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session long top top top org.hsqldb.lib.LongDeque
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.getFirst:()J
lstore 4
start local 4 6: lload 4
lload 2
lcmp
ifge 10
7: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.removeFirst:()J
pop2
8: aload 0
getfield org.hsqldb.TransactionManagerMVCC.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
invokevirtual org.hsqldb.lib.HsqlDeque.removeFirst:()Ljava/lang/Object;
checkcast java.lang.Object[]
astore 6
start local 6 9: goto 12
end local 6 10: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session long long top org.hsqldb.lib.LongDeque
StackMap stack:
aload 7
monitorexit
11: goto 19
start local 6 12: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session long long java.lang.Object[] org.hsqldb.lib.LongDeque
StackMap stack:
aload 7
monitorexit
13: goto 16
end local 6 end local 4 StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session long top top top org.hsqldb.lib.LongDeque
StackMap stack: java.lang.Throwable
14: aload 7
monitorexit
15: athrow
start local 4 start local 6 16: StackMap locals: org.hsqldb.TransactionManagerMVCC org.hsqldb.Session long long java.lang.Object[]
StackMap stack:
aload 0
aload 6
iconst_0
aload 6
arraylength
lload 4
invokevirtual org.hsqldb.TransactionManagerMVCC.mergeTransaction:([Ljava/lang/Object;IIJ)V
17: aload 0
aload 1
aload 6
iconst_0
aload 6
arraylength
invokevirtual org.hsqldb.TransactionManagerMVCC.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
end local 6 end local 4 18: goto 1
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 20 1 session Lorg/hsqldb/Session;
1 20 2 timestamp J
6 14 4 commitTimestamp J
16 18 4 commitTimestamp J
9 10 6 actions [Ljava/lang/Object;
12 14 6 actions [Ljava/lang/Object;
16 18 6 actions [Ljava/lang/Object;
Exception table:
from to target type
2 4 14 any
5 11 14 any
12 13 14 any
14 15 14 any
MethodParameters:
Name Flags
session
public void beginTransaction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 1
getfield org.hsqldb.Session.isTransaction:Z
ifne 10
2: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.beginTransactionCommon:(Lorg/hsqldb/Session;)V
3: aload 0
getfield org.hsqldb.TransactionManagerMVCC.liveTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
4: aload 1
getfield org.hsqldb.Session.transactionTimestamp:J
5: invokevirtual org.hsqldb.lib.LongDeque.addLast:(J)Z
pop
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 12 1 session Lorg/hsqldb/Session;
Exception table:
from to target type
1 7 7 any
MethodParameters:
Name Flags
session
public void beginAction(org.hsqldb.Session, org.hsqldb.Statement);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.hsqldb.Session.isTransaction:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
5: aload 0
getfield org.hsqldb.TransactionManagerMVCC.hasExpired:Z
ifeq 9
6: aload 1
iconst_1
putfield org.hsqldb.Session.redoAction:Z
7: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
8: return
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.hsqldb.TransactionManagerMVCC.updateCurrentStatement:(Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)Lorg/hsqldb/Statement;
astore 2
10: aload 2
ifnonnull 13
11: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
12: return
13: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.abortTransaction:Z
ifeq 16
14: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
15: return
16: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield org.hsqldb.Session.isPreTransaction:Z
17: aload 0
getfield org.hsqldb.TransactionManagerMVCC.isLockedMode:Z
ifne 20
aload 2
aload 0
getfield org.hsqldb.TransactionManagerMVCC.txModel:I
invokevirtual org.hsqldb.Statement.isCatalogLock:(I)Z
ifne 20
18: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
19: return
20: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.hsqldb.TransactionManagerMVCC.beginActionTPL:(Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)Z
pop
21: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 3
23: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
24: aload 3
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 27 1 session Lorg/hsqldb/Session;
0 27 2 cs Lorg/hsqldb/Statement;
Exception table:
from to target type
5 7 22 any
9 11 22 any
13 14 22 any
16 18 22 any
20 22 22 any
MethodParameters:
Name Flags
session
cs
public void beginActionResume(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 1
getfield org.hsqldb.Session.isTransaction:Z
ifeq 5
2: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMVCC.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
3: aload 1
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.Session.actionStartTimestamp:J
4: goto 13
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.beginTransactionCommon:(Lorg/hsqldb/Session;)V
6: aload 0
getfield org.hsqldb.TransactionManagerMVCC.liveTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
7: aload 1
getfield org.hsqldb.Session.transactionTimestamp:J
8: invokevirtual org.hsqldb.lib.LongDeque.addLast:(J)Z
pop
9: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 2
11: aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 15 1 session Lorg/hsqldb/Session;
Exception table:
from to target type
1 10 10 any
MethodParameters:
Name Flags
session
org.hsqldb.RowAction addDeleteActionToRow(org.hsqldb.Session, org.hsqldb.Table, org.hsqldb.persist.PersistentStore, org.hsqldb.Row, int[]);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Table;Lorg/hsqldb/persist/PersistentStore;Lorg/hsqldb/Row;[I)Lorg/hsqldb/RowAction;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
aload 1
aload 4
aload 5
1: iconst_1
2: invokeinterface org.hsqldb.persist.PersistentStore.addDeleteActionToRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;[IZ)Lorg/hsqldb/RowAction;
astore 6
start local 6 3: aload 2
getfield org.hsqldb.Table.tableType:I
iconst_3
if_icmpne 6
4: aload 3
aload 1
aload 4
invokeinterface org.hsqldb.persist.PersistentStore.delete:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;)V
5: aload 4
aconst_null
putfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
6: StackMap locals: org.hsqldb.RowAction
StackMap stack:
aload 6
areturn
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 7 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 7 1 session Lorg/hsqldb/Session;
0 7 2 table Lorg/hsqldb/Table;
0 7 3 store Lorg/hsqldb/persist/PersistentStore;
0 7 4 row Lorg/hsqldb/Row;
0 7 5 colMap [I
3 7 6 action Lorg/hsqldb/RowAction;
MethodParameters:
Name Flags
session
table
store
row
colMap
void endTransaction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield org.hsqldb.Session.transactionTimestamp:J
lstore 2
start local 2 1: aload 0
getfield org.hsqldb.TransactionManagerMVCC.liveTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
lload 2
invokevirtual org.hsqldb.lib.LongDeque.indexOf:(J)I
istore 4
start local 4 2: iload 4
iflt 6
3: aload 0
getfield org.hsqldb.TransactionManagerMVCC.transactionCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
4: aload 0
getfield org.hsqldb.TransactionManagerMVCC.liveTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
iload 4
invokevirtual org.hsqldb.lib.LongDeque.remove:(I)J
pop2
5: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.mergeExpiredTransactions:(Lorg/hsqldb/Session;)V
6: StackMap locals: long int
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 7 1 session Lorg/hsqldb/Session;
1 7 2 timestamp J
2 7 4 index I
MethodParameters:
Name Flags
session
private void countDownLatches(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
iload 2
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Session
astore 3
start local 3 3: aload 3
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 1
invokevirtual org.hsqldb.lib.OrderedHashSet.remove:(Ljava/lang/Object;)Z
pop
4: aload 3
getfield org.hsqldb.Session.latch:Lorg/hsqldb/lib/CountUpDownLatch;
aload 3
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
invokevirtual org.hsqldb.lib.CountUpDownLatch.setCount:(I)Z
pop
end local 3 5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 2
end local 2 7: aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
8: aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 10 1 session Lorg/hsqldb/Session;
1 7 2 i I
3 5 3 current Lorg/hsqldb/Session;
MethodParameters:
Name Flags
session
void endTransactionTPL(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
aload 1
if_acmpeq 2
1: return
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 11
5: StackMap locals: org.hsqldb.Session int
StackMap stack:
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
iload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Session
astore 4
start local 4 6: aload 4
getfield org.hsqldb.Session.sessionContext:Lorg/hsqldb/SessionContext;
getfield org.hsqldb.SessionContext.currentStatement:Lorg/hsqldb/Statement;
astore 5
start local 5 7: aload 5
ifnull 10
aload 5
aload 0
getfield org.hsqldb.TransactionManagerMVCC.txModel:I
invokevirtual org.hsqldb.Statement.isCatalogLock:(I)Z
ifeq 10
8: aload 4
astore 2
9: goto 12
end local 5 end local 4 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 5
end local 3 12: StackMap locals:
StackMap stack:
aload 2
ifnonnull 16
13: aload 0
aconst_null
putfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
14: aload 0
iconst_0
putfield org.hsqldb.TransactionManagerMVCC.isLockedMode:Z
15: goto 26
16: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 17: goto 24
18: StackMap locals: int
StackMap stack:
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
iload 3
invokevirtual org.hsqldb.lib.OrderedHashSet.get:(I)Ljava/lang/Object;
checkcast org.hsqldb.Session
astore 4
start local 4 19: aload 4
aload 2
if_acmpeq 23
20: aload 4
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 2
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
21: aload 2
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 4
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
22: aload 4
getfield org.hsqldb.Session.latch:Lorg/hsqldb/lib/CountUpDownLatch;
aload 4
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
invokevirtual org.hsqldb.lib.CountUpDownLatch.setCount:(I)Z
pop
end local 4 23: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
24: iload 3
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
if_icmplt 18
end local 3 25: aload 0
aload 2
putfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
26: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.TransactionManagerMVCC.unlockTxTs:J
27: aload 0
aload 1
invokevirtual org.hsqldb.Session.getId:()J
putfield org.hsqldb.TransactionManagerMVCC.unlockSessionId:J
28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 29 1 session Lorg/hsqldb/Session;
3 29 2 nextSession Lorg/hsqldb/Session;
4 12 3 i I
6 10 4 current Lorg/hsqldb/Session;
7 10 5 st Lorg/hsqldb/Statement;
17 25 3 i I
19 23 4 current Lorg/hsqldb/Session;
MethodParameters:
Name Flags
session
boolean beginActionTPL(org.hsqldb.Session, org.hsqldb.Statement);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)Z
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
3: aload 2
aload 0
getfield org.hsqldb.TransactionManagerMVCC.txModel:I
invokevirtual org.hsqldb.Statement.isCatalogLock:(I)Z
ifeq 14
4: aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
ifnonnull 14
5: aload 0
aload 1
putfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
6: aload 0
iconst_1
putfield org.hsqldb.TransactionManagerMVCC.isLockedMode:Z
7: aload 0
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.TransactionManagerMVCC.lockTxTs:J
8: aload 0
aload 1
invokevirtual org.hsqldb.Session.getId:()J
putfield org.hsqldb.TransactionManagerMVCC.lockSessionId:J
9: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.getTransactionAndPreSessions:(Lorg/hsqldb/Session;)V
10: aload 1
getfield org.hsqldb.Session.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.isEmpty:()Z
ifne 13
11: aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 1
getfield org.hsqldb.Session.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.addAll:(Lorg/hsqldb/lib/OrderedHashSet;)V
12: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMVCC.setWaitingSessionTPL:(Lorg/hsqldb/Session;)V
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
14: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.isLockedMode:Z
ifne 16
15: iconst_1
ireturn
16: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.hsqldb.Statement.getTableNamesForWrite:()[Lorg/hsqldb/HsqlNameManager$HsqlName;
arraylength
ifle 21
17: aload 2
invokevirtual org.hsqldb.Statement.getTableNamesForWrite:()[Lorg/hsqldb/HsqlNameManager$HsqlName;
iconst_0
aaload
getfield org.hsqldb.HsqlNameManager$HsqlName.schema:Lorg/hsqldb/HsqlNameManager$HsqlName;
18: getstatic org.hsqldb.SqlInvariants.LOBS_SCHEMA_HSQLNAME:Lorg/hsqldb/HsqlNameManager$HsqlName;
19: if_acmpne 26
20: iconst_1
ireturn
21: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.hsqldb.Statement.getTableNamesForRead:()[Lorg/hsqldb/HsqlNameManager$HsqlName;
arraylength
ifle 26
22: aload 2
invokevirtual org.hsqldb.Statement.getTableNamesForRead:()[Lorg/hsqldb/HsqlNameManager$HsqlName;
iconst_0
aaload
getfield org.hsqldb.HsqlNameManager$HsqlName.schema:Lorg/hsqldb/HsqlNameManager$HsqlName;
23: getstatic org.hsqldb.SqlInvariants.LOBS_SCHEMA_HSQLNAME:Lorg/hsqldb/HsqlNameManager$HsqlName;
24: if_acmpne 26
25: iconst_1
ireturn
26: StackMap locals:
StackMap stack:
aload 1
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
invokevirtual org.hsqldb.lib.OrderedHashSet.contains:(Ljava/lang/Object;)Z
ifeq 28
27: iconst_1
ireturn
28: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
getfield org.hsqldb.Session.waitingSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 1
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
ifeq 31
29: aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
aload 0
getfield org.hsqldb.TransactionManagerMVCC.catalogWriteSession:Lorg/hsqldb/Session;
invokevirtual org.hsqldb.lib.OrderedHashSet.add:(Ljava/lang/Object;)Z
pop
30: aload 1
getfield org.hsqldb.Session.latch:Lorg/hsqldb/lib/CountUpDownLatch;
aload 1
getfield org.hsqldb.Session.waitedSessions:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.size:()I
invokevirtual org.hsqldb.lib.CountUpDownLatch.setCount:(I)Z
pop
31: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 32 1 session Lorg/hsqldb/Session;
0 32 2 cs Lorg/hsqldb/Statement;
MethodParameters:
Name Flags
session
cs
public void resetSession(org.hsqldb.Session, org.hsqldb.Session, int);
descriptor: (Lorg/hsqldb/Session;Lorg/hsqldb/Session;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokespecial org.hsqldb.TransactionManagerCommon.resetSession:(Lorg/hsqldb/Session;Lorg/hsqldb/Session;I)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/TransactionManagerMVCC;
0 2 1 session Lorg/hsqldb/Session;
0 2 2 targetSession Lorg/hsqldb/Session;
0 2 3 mode I
MethodParameters:
Name Flags
session
targetSession
mode
public long getNextGlobalChangeTimestamp();
descriptor: ()J
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
0: aload 0
invokespecial org.hsqldb.TransactionManagerCommon.getNextGlobalChangeTimestamp:()J
lreturn
LocalVariableTable:
Start End Slot Name Signature
public void abortAction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokespecial org.hsqldb.TransactionManagerCommon.abortAction:(Lorg/hsqldb/Session;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "TransactionManagerMVCC.java"
InnerClasses:
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
public final HsqlName = org.hsqldb.HsqlNameManager$HsqlName of org.hsqldb.HsqlNameManager