public class org.hsqldb.TransactionManagerMV2PL 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.TransactionManagerMV2PL
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)
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.TransactionManagerMV2PL.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
2: aload 0
new org.hsqldb.lib.LongDeque
dup
invokespecial org.hsqldb.lib.LongDeque.<init>:()V
putfield org.hsqldb.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
3: aload 0
aload 0
getfield org.hsqldb.TransactionManagerMV2PL.database:Lorg/hsqldb/Database;
getfield org.hsqldb.Database.sessionManager:Lorg/hsqldb/SessionManager;
invokevirtual org.hsqldb.SessionManager.getSysLobSession:()Lorg/hsqldb/Session;
putfield org.hsqldb.TransactionManagerMV2PL.lobSession:Lorg/hsqldb/Session;
4: aload 0
iconst_1
putfield org.hsqldb.TransactionManagerMV2PL.txModel:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 6 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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
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/TransactionManagerMV2PL;
public boolean isMVCC();
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/TransactionManagerMV2PL;
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/TransactionManagerMV2PL;
public int getTransactionControl();
descriptor: ()I
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/TransactionManagerMV2PL;
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/TransactionManagerMV2PL;
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=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endActionTPL:(Lorg/hsqldb/Session;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 2 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 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 2
start local 2 2: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMV2PL.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
3: iconst_0
istore 3
start local 3 4: goto 8
5: 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 6: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.prepareCommit:(Lorg/hsqldb/Session;)V
end local 4 7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 2
if_icmplt 5
end local 3 9: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
10: iconst_1
ireturn
end local 2 11: StackMap locals: org.hsqldb.TransactionManagerMV2PL org.hsqldb.Session
StackMap stack: java.lang.Throwable
astore 5
12: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
13: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 14 1 session Lorg/hsqldb/Session;
2 11 2 limit I
4 9 3 i I
6 7 4 action Lorg/hsqldb/RowAction;
Exception table:
from to target type
1 9 11 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.TransactionManagerMV2PL.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: aload 1
aload 0
invokevirtual org.hsqldb.TransactionManagerMV2PL.getNextGlobalChangeTimestamp:()J
putfield org.hsqldb.Session.actionTimestamp:J
5: aload 1
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
putfield org.hsqldb.Session.transactionEndTimestamp:J
6: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endTransaction:(Lorg/hsqldb/Session;)V
7: iconst_0
istore 3
start local 3 8: goto 12
9: 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 10: aload 4
aload 1
invokevirtual org.hsqldb.RowAction.commit:(Lorg/hsqldb/Session;)I
pop
end local 4 11: iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 2
if_icmplt 9
end local 3 13: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.adjustLobUsage:(Lorg/hsqldb/Session;)V
14: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.persistCommit:(Lorg/hsqldb/Session;)V
15: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
istore 3
start local 3 16: iload 3
iload 2
if_icmple 23
17: 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 18: aload 0
aload 4
iload 2
iload 3
19: aload 1
getfield org.hsqldb.Session.actionTimestamp:J
20: invokevirtual org.hsqldb.TransactionManagerMV2PL.mergeTransaction:([Ljava/lang/Object;IIJ)V
21: aload 0
aload 1
aload 4
iload 2
iload 3
invokevirtual org.hsqldb.TransactionManagerMV2PL.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
22: aload 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
iload 2
invokevirtual org.hsqldb.lib.HsqlArrayList.setSize:(I)V
end local 4 23: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.hsqldb.TransactionManagerMV2PL.lobSession:Lorg/hsqldb/Session;
if_acmpeq 26
24: aload 0
invokevirtual org.hsqldb.TransactionManagerMV2PL.getFirstLiveTransactionTimestamp:()J
25: aload 1
getfield org.hsqldb.Session.actionTimestamp:J
lcmp
ifle 30
26: 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 27: aload 0
aload 4
iconst_0
iload 2
aload 1
getfield org.hsqldb.Session.actionTimestamp:J
invokevirtual org.hsqldb.TransactionManagerMV2PL.mergeTransaction:([Ljava/lang/Object;IIJ)V
28: aload 0
aload 1
aload 4
iconst_0
iload 2
invokevirtual org.hsqldb.TransactionManagerMV2PL.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
end local 4 29: goto 32
30: StackMap locals:
StackMap stack:
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 31: aload 0
aload 1
aload 4
invokevirtual org.hsqldb.TransactionManagerMV2PL.addToCommittedQueue:(Lorg/hsqldb/Session;[Ljava/lang/Object;)V
end local 4 32: StackMap locals:
StackMap stack:
aload 1
iconst_0
putfield org.hsqldb.Session.isTransaction:Z
33: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endTransactionTPL:(Lorg/hsqldb/Session;)V
end local 3 end local 2 34: goto 39
StackMap locals: org.hsqldb.TransactionManagerMV2PL org.hsqldb.Session
StackMap stack: java.lang.Throwable
35: astore 5
36: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
37: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
38: aload 5
athrow
39: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
40: aload 1
getfield org.hsqldb.Session.actionSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.clear:()V
41: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 42 1 session Lorg/hsqldb/Session;
4 34 2 limit I
8 13 3 i I
10 11 4 action Lorg/hsqldb/RowAction;
16 34 3 newLimit I
18 23 4 list [Ljava/lang/Object;
27 29 4 list [Ljava/lang/Object;
31 32 4 list [Ljava/lang/Object;
Exception table:
from to target type
3 35 35 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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.rollbackPartial:(Lorg/hsqldb/Session;IJ)V
5: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endTransaction:(Lorg/hsqldb/Session;)V
6: aload 1
invokevirtual org.hsqldb.Session.logSequences:()V
7: aload 1
iconst_0
putfield org.hsqldb.Session.isTransaction:Z
8: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endTransactionTPL:(Lorg/hsqldb/Session;)V
9: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 2
11: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
0 15 1 session Lorg/hsqldb/Session;
Exception table:
from to target type
1 10 10 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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
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.TransactionManagerMV2PL.rollbackPartial:(Lorg/hsqldb/Session;IJ)V
3: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.endActionTPL:(Lorg/hsqldb/Session;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 5 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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL 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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
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=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 1
getfield org.hsqldb.Session.rowActionList:Lorg/hsqldb/lib/HsqlArrayList;
aload 6
invokevirtual org.hsqldb.lib.HsqlArrayList.add:(Ljava/lang/Object;)Z
pop
7: 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 8 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 8 1 session Lorg/hsqldb/Session;
0 8 2 table Lorg/hsqldb/Table;
0 8 3 store Lorg/hsqldb/persist/PersistentStore;
0 8 4 row Lorg/hsqldb/Row;
0 8 5 colMap [I
3 8 6 action Lorg/hsqldb/RowAction;
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=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 4
getfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
astore 6
start local 6 1: aload 6
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 3
aload 1
aload 4
invokeinterface org.hsqldb.persist.PersistentStore.indexRow:(Lorg/hsqldb/Session;Lorg/hsqldb/Row;)V
6: aload 2
getfield org.hsqldb.Table.persistenceScope:I
bipush 20
if_icmpne 9
7: aload 4
aconst_null
putfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
8: return
9: 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
10: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 11 1 session Lorg/hsqldb/Session;
0 11 2 table Lorg/hsqldb/Table;
0 11 3 store Lorg/hsqldb/persist/PersistentStore;
0 11 4 row Lorg/hsqldb/Row;
0 11 5 changedColumns [I
1 11 6 action Lorg/hsqldb/RowAction;
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: aload 3
aconst_null
putfield org.hsqldb.Row.rowAction:Lorg/hsqldb/RowAction;
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 9 1 session Lorg/hsqldb/Session;
0 9 2 store Lorg/hsqldb/persist/PersistentStore;
0 9 3 row Lorg/hsqldb/Row;
1 9 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:
aload 6
aload 1
iconst_0
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 6 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 6 1 session Lorg/hsqldb/Session;
0 6 2 store Lorg/hsqldb/persist/PersistentStore;
0 6 3 row Lorg/hsqldb/Row;
0 6 4 mode I
0 6 5 colMap [I
1 6 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.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
dup
astore 3
monitorenter
1: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
aload 2
invokevirtual org.hsqldb.lib.HsqlDeque.addLast:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.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.TransactionManagerMV2PL 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/TransactionManagerMV2PL;
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.TransactionManagerMV2PL.getFirstLiveTransactionTimestamp:()J
lstore 2
start local 2 1: StackMap locals: long
StackMap stack:
lconst_0
lstore 4
start local 4 2: aconst_null
astore 6
start local 6 3: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
dup
astore 7
monitorenter
4: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.isEmpty:()Z
ifeq 7
5: aload 7
monitorexit
6: goto 21
7: StackMap locals: long java.lang.Object[] org.hsqldb.lib.LongDeque
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.getFirst:()J
lstore 4
8: lload 4
lload 2
lcmp
ifge 12
9: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
invokevirtual org.hsqldb.lib.LongDeque.removeFirst:()J
pop2
10: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.committedTransactions:Lorg/hsqldb/lib/HsqlDeque;
invokevirtual org.hsqldb.lib.HsqlDeque.removeFirst:()Ljava/lang/Object;
checkcast java.lang.Object[]
astore 6
11: goto 14
12: StackMap locals:
StackMap stack:
aload 7
monitorexit
13: goto 21
14: StackMap locals:
StackMap stack:
aload 7
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 7
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
aload 6
iconst_0
aload 6
arraylength
lload 4
invokevirtual org.hsqldb.TransactionManagerMV2PL.mergeTransaction:([Ljava/lang/Object;IIJ)V
19: aload 0
aload 1
aload 6
iconst_0
aload 6
arraylength
invokevirtual org.hsqldb.TransactionManagerMV2PL.finaliseRows:(Lorg/hsqldb/Session;[Ljava/lang/Object;II)V
end local 6 end local 4 20: goto 1
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 22 1 session Lorg/hsqldb/Session;
1 22 2 timestamp J
2 20 4 commitTimestamp J
3 20 6 actions [Ljava/lang/Object;
Exception table:
from to target type
4 6 16 any
7 13 16 any
14 15 16 any
16 17 16 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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.beginTransactionCommon:(Lorg/hsqldb/Session;)V
3: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
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=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.hasExpired:Z
ifeq 5
2: aload 1
iconst_1
putfield org.hsqldb.Session.redoAction:Z
3: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
4: return
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.hsqldb.TransactionManagerMV2PL.updateCurrentStatement:(Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)Lorg/hsqldb/Statement;
astore 2
6: aload 2
ifnonnull 9
7: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.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.TransactionManagerMV2PL.setWaitedSessionsTPL:(Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)Z
istore 3
start local 3 10: iload 3
ifeq 17
11: aload 1
iconst_1
putfield org.hsqldb.Session.isPreTransaction:Z
12: aload 1
getfield org.hsqldb.Session.tempSet:Lorg/hsqldb/lib/OrderedHashSet;
invokevirtual org.hsqldb.lib.OrderedHashSet.isEmpty:()Z
ifeq 15
13: aload 0
aload 1
aload 2
invokevirtual org.hsqldb.TransactionManagerMV2PL.lockTablesTPL:(Lorg/hsqldb/Session;Lorg/hsqldb/Statement;)V
14: goto 22
15: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.setWaitingSessionTPL:(Lorg/hsqldb/Session;)V
16: goto 22
17: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield org.hsqldb.Session.abortTransaction:Z
end local 3 18: goto 22
StackMap locals: org.hsqldb.TransactionManagerMV2PL org.hsqldb.Session org.hsqldb.Statement
StackMap stack: java.lang.Throwable
19: astore 4
20: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
21: aload 4
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.TransactionManagerMV2PL.writeLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/hsqldb/TransactionManagerMV2PL;
0 24 1 session Lorg/hsqldb/Session;
0 24 2 cs Lorg/hsqldb/Statement;
10 18 3 canProceed Z
Exception table:
from to target type
1 3 19 any
5 7 19 any
9 19 19 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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.beginTransactionCommon:(Lorg/hsqldb/Session;)V
6: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
0 15 1 session Lorg/hsqldb/Session;
Exception table:
from to target type
1 10 10 any
MethodParameters:
Name Flags
session
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/TransactionManagerMV2PL;
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
private void endTransaction(org.hsqldb.Session);
descriptor: (Lorg/hsqldb/Session;)V
flags: (0x0002) ACC_PRIVATE
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.TransactionManagerMV2PL.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.TransactionManagerMV2PL.transactionCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
4: aload 0
getfield org.hsqldb.TransactionManagerMV2PL.liveTransactionTimestamps:Lorg/hsqldb/lib/LongDeque;
iload 4
invokevirtual org.hsqldb.lib.LongDeque.remove:(I)J
pop2
5: aload 0
aload 1
invokevirtual org.hsqldb.TransactionManagerMV2PL.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/TransactionManagerMV2PL;
0 7 1 session Lorg/hsqldb/Session;
1 7 2 timestamp J
2 7 4 index I
MethodParameters:
Name Flags
session
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: "TransactionManagerMV2PL.java"
InnerClasses:
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock