public class org.h2.mvstore.tx.Transaction
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.mvstore.tx.Transaction
super_class: java.lang.Object
{
public static final int STATUS_CLOSED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int STATUS_OPEN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int STATUS_PREPARED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int STATUS_COMMITTED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int STATUS_ROLLING_BACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int STATUS_ROLLED_BACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final java.lang.String[] STATUS_NAMES;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final int LOG_ID_BITS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 40
private static final int LOG_ID_BITS1;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 41
private static final long LOG_ID_LIMIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1099511627776
private static final long LOG_ID_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2199023255551
private static final int STATUS_BITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int STATUS_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 15
final org.h2.mvstore.tx.TransactionStore store;
descriptor: Lorg/h2/mvstore/tx/TransactionStore;
flags: (0x0010) ACC_FINAL
final org.h2.mvstore.tx.TransactionStore$RollbackListener listener;
descriptor: Lorg/h2/mvstore/tx/TransactionStore$RollbackListener;
flags: (0x0010) ACC_FINAL
final int transactionId;
descriptor: I
flags: (0x0010) ACC_FINAL
final long sequenceNum;
descriptor: J
flags: (0x0010) ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong statusAndLogId;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.h2.mvstore.MVStore$TxCounter txCounter;
descriptor: Lorg/h2/mvstore/MVStore$TxCounter;
flags: (0x0002) ACC_PRIVATE
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
boolean wasStored;
descriptor: Z
flags: (0x0000)
final int timeoutMillis;
descriptor: I
flags: (0x0010) ACC_FINAL
private final int ownerId;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile org.h2.mvstore.tx.Transaction blockingTransaction;
descriptor: Lorg/h2/mvstore/tx/Transaction;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private org.h2.mvstore.MVMap<?, org.h2.value.VersionedValue> blockingMap;
descriptor: Lorg/h2/mvstore/MVMap;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/h2/mvstore/MVMap<*Lorg/h2/value/VersionedValue;>;
private java.lang.Object blockingKey;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private volatile boolean notificationRequested;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lorg/h2/mvstore/tx/Transaction;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.h2.mvstore.tx.Transaction.$assertionsDisabled:Z
3: bipush 6
anewarray java.lang.String
dup
iconst_0
4: ldc "CLOSED"
aastore
dup
iconst_1
ldc "OPEN"
aastore
dup
iconst_2
ldc "PREPARED"
aastore
dup
iconst_3
ldc "COMMITTED"
aastore
dup
iconst_4
ldc "ROLLING_BACK"
aastore
dup
iconst_5
ldc "ROLLED_BACK"
aastore
5: putstatic org.h2.mvstore.tx.Transaction.STATUS_NAMES:[Ljava/lang/String;
6: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.h2.mvstore.tx.TransactionStore, int, long, int, java.lang.String, long, int, int, org.h2.mvstore.tx.TransactionStore$RollbackListener);
descriptor: (Lorg/h2/mvstore/tx/TransactionStore;IJILjava/lang/String;JIILorg/h2/mvstore/tx/TransactionStore$RollbackListener;)V
flags: (0x0000)
Code:
stack=7, locals=12, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 start local 9 start local 10 start local 11 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
2: aload 0
iload 2
putfield org.h2.mvstore.tx.Transaction.transactionId:I
3: aload 0
lload 3
putfield org.h2.mvstore.tx.Transaction.sequenceNum:J
4: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
iload 5
lload 7
iconst_0
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
5: aload 0
aload 6
putfield org.h2.mvstore.tx.Transaction.name:Ljava/lang/String;
6: aload 0
iload 9
putfield org.h2.mvstore.tx.Transaction.timeoutMillis:I
7: aload 0
iload 10
putfield org.h2.mvstore.tx.Transaction.ownerId:I
8: aload 0
aload 11
putfield org.h2.mvstore.tx.Transaction.listener:Lorg/h2/mvstore/tx/TransactionStore$RollbackListener;
9: return
end local 11 end local 10 end local 9 end local 7 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 10 0 this Lorg/h2/mvstore/tx/Transaction;
0 10 1 store Lorg/h2/mvstore/tx/TransactionStore;
0 10 2 transactionId I
0 10 3 sequenceNum J
0 10 5 status I
0 10 6 name Ljava/lang/String;
0 10 7 logId J
0 10 9 timeoutMillis I
0 10 10 ownerId I
0 10 11 listener Lorg/h2/mvstore/tx/TransactionStore$RollbackListener;
MethodParameters:
Name Flags
store
transactionId
sequenceNum
status
name
logId
timeoutMillis
ownerId
listener
public int getId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
public long getSequenceNum();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.sequenceNum:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
public int getStatus();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
private long setStatus(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 2
start local 2 1: lload 2
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lstore 4
start local 4 2: lload 2
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
istore 6
start local 6 3: iload 1
tableswitch { // 0 - 5
0: 25
1: 31
2: 8
3: 12
4: 4
5: 19
default: 31
}
4: StackMap locals: long long int
StackMap stack:
iload 6
iconst_1
if_icmpne 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 7
start local 7 7: goto 32
end local 7 8: StackMap locals:
StackMap stack:
iload 6
iconst_1
if_icmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 7
start local 7 11: goto 32
end local 7 12: StackMap locals:
StackMap stack:
iload 6
iconst_1
if_icmpeq 16
13: iload 6
iconst_2
if_icmpeq 16
14: iload 6
iconst_3
if_icmpeq 16
15: iconst_0
goto 17
StackMap locals:
StackMap stack:
16: iconst_1
StackMap locals:
StackMap stack: int
17: istore 7
start local 7 18: goto 32
end local 7 19: StackMap locals:
StackMap stack:
iload 6
iconst_1
if_icmpeq 22
20: iload 6
iconst_2
if_icmpeq 22
21: iconst_0
goto 23
StackMap locals:
StackMap stack:
22: iconst_1
StackMap locals:
StackMap stack: int
23: istore 7
start local 7 24: goto 32
end local 7 25: StackMap locals:
StackMap stack:
iload 6
iconst_3
if_icmpeq 28
26: iload 6
iconst_5
if_icmpeq 28
27: iconst_0
goto 29
StackMap locals:
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: istore 7
start local 7 30: goto 32
end local 7 31: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 32: StackMap locals: int
StackMap stack:
iload 7
ifne 37
33: bipush 103
34: ldc "Transaction was illegally transitioned from {0} to {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
35: getstatic org.h2.mvstore.tx.Transaction.STATUS_NAMES:[Ljava/lang/String;
iload 6
aaload
aastore
dup
iconst_1
getstatic org.h2.mvstore.tx.Transaction.STATUS_NAMES:[Ljava/lang/String;
iload 1
aaload
aastore
36: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
37: StackMap locals:
StackMap stack:
iload 1
lload 4
lload 2
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
lstore 8
start local 8 38: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
lload 2
lload 8
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 0
39: lload 2
lreturn
end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/h2/mvstore/tx/Transaction;
0 40 1 status I
1 40 2 currentState J
2 40 4 logId J
3 40 6 currentStatus I
7 8 7 valid Z
11 12 7 valid Z
18 19 7 valid Z
24 25 7 valid Z
30 31 7 valid Z
32 40 7 valid Z
38 40 8 newState J
MethodParameters:
Name Flags
status
public boolean hasChanges();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.h2.mvstore.tx.Transaction.hasChanges:(J)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
public void setName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.checkNotClosed:()V
1: aload 0
aload 1
putfield org.h2.mvstore.tx.Transaction.name:Ljava/lang/String;
2: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
invokevirtual org.h2.mvstore.tx.TransactionStore.storeTransaction:(Lorg/h2/mvstore/tx/Transaction;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/tx/Transaction;
0 4 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
public int getBlockerId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
astore 1
start local 1 1: aload 1
ifnonnull 2
iconst_0
goto 3
StackMap locals: org.h2.mvstore.tx.Transaction
StackMap stack:
2: aload 1
getfield org.h2.mvstore.tx.Transaction.ownerId:I
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/tx/Transaction;
1 4 1 blocker Lorg/h2/mvstore/tx/Transaction;
public long setSavepoint();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.getLogId:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
public void markStatementStart();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.markStatementEnd:()V
1: aload 0
aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
getfield org.h2.mvstore.tx.TransactionStore.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.registerVersionUsage:()Lorg/h2/mvstore/MVStore$TxCounter;
putfield org.h2.mvstore.tx.Transaction.txCounter:Lorg/h2/mvstore/MVStore$TxCounter;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/tx/Transaction;
public void markStatementEnd();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.txCounter:Lorg/h2/mvstore/MVStore$TxCounter;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.txCounter:Lorg/h2/mvstore/MVStore$TxCounter;
3: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
getfield org.h2.mvstore.tx.TransactionStore.store:Lorg/h2/mvstore/MVStore;
aload 1
invokevirtual org.h2.mvstore.MVStore.deregisterVersionUsage:(Lorg/h2/mvstore/MVStore$TxCounter;)V
4: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/tx/Transaction;
1 5 1 counter Lorg/h2/mvstore/MVStore$TxCounter;
long log(int, java.lang.Object, org.h2.value.VersionedValue);
descriptor: (ILjava/lang/Object;Lorg/h2/value/VersionedValue;)J
flags: (0x0000)
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.getAndIncrement:()J
lstore 4
start local 4 1: lload 4
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lstore 6
start local 6 2: lload 6
ldc 1099511627776
lcmp
iflt 7
3: bipush 104
4: ldc "Transaction {0} has too many changes"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
7: StackMap locals: long long
StackMap stack:
lload 4
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
istore 8
start local 8 8: aload 0
iload 8
invokevirtual org.h2.mvstore.tx.Transaction.checkOpen:(I)V
9: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
lload 6
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
invokevirtual org.h2.mvstore.tx.TransactionStore.addUndoLogRecord:(IJ[Ljava/lang/Object;)J
lstore 9
start local 9 10: lload 9
lreturn
end local 9 end local 8 end local 6 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/h2/mvstore/tx/Transaction;
0 11 1 mapId I
0 11 2 key Ljava/lang/Object;
0 11 3 oldValue Lorg/h2/value/VersionedValue;
1 11 4 currentState J
2 11 6 logId J
8 11 8 currentStatus I
10 11 9 undoKey J
MethodParameters:
Name Flags
mapId
key
oldValue
void logUndo();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
lstore 1
start local 1 1: lload 1
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lstore 3
start local 3 2: lload 3
ldc 1099511627776
lcmp
iflt 7
3: bipush 100
4: ldc "Transaction {0} has internal error"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
7: StackMap locals: long long
StackMap stack:
lload 1
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
istore 5
start local 5 8: aload 0
iload 5
invokevirtual org.h2.mvstore.tx.Transaction.checkOpen:(I)V
9: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokevirtual org.h2.mvstore.tx.TransactionStore.removeUndoLogRecord:(I)V
10: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/mvstore/tx/Transaction;
1 11 1 currentState J
2 11 3 logId J
8 11 5 currentStatus I
public <K, V> org.h2.mvstore.tx.TransactionMap<K, V> openMap(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/h2/mvstore/tx/TransactionMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
invokevirtual org.h2.mvstore.tx.Transaction.openMap:(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
0 1 1 name Ljava/lang/String;
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lorg/h2/mvstore/tx/TransactionMap<TK;TV;>;
MethodParameters:
Name Flags
name
public <K, V> org.h2.mvstore.tx.TransactionMap<K, V> openMap(java.lang.String, org.h2.mvstore.type.DataType, org.h2.mvstore.type.DataType);
descriptor: (Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 1
aload 2
aload 3
invokevirtual org.h2.mvstore.tx.TransactionStore.openMap:(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 1: aload 0
aload 4
invokevirtual org.h2.mvstore.tx.Transaction.openMap:(Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/tx/TransactionMap;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/tx/Transaction;
0 2 1 name Ljava/lang/String;
0 2 2 keyType Lorg/h2/mvstore/type/DataType;
0 2 3 valueType Lorg/h2/mvstore/type/DataType;
1 2 4 map Lorg/h2/mvstore/MVMap<TK;Lorg/h2/value/VersionedValue;>;
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;)Lorg/h2/mvstore/tx/TransactionMap<TK;TV;>;
MethodParameters:
Name Flags
name
keyType
valueType
public <K, V> org.h2.mvstore.tx.TransactionMap<K, V> openMap(org.h2.mvstore.MVMap<K, org.h2.value.VersionedValue>);
descriptor: (Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/tx/TransactionMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.checkNotClosed:()V
1: new org.h2.mvstore.tx.TransactionMap
dup
aload 0
aload 1
invokespecial org.h2.mvstore.tx.TransactionMap.<init>:(Lorg/h2/mvstore/tx/Transaction;Lorg/h2/mvstore/MVMap;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/tx/Transaction;
0 2 1 map Lorg/h2/mvstore/MVMap<TK;Lorg/h2/value/VersionedValue;>;
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/h2/mvstore/MVMap<TK;Lorg/h2/value/VersionedValue;>;)Lorg/h2/mvstore/tx/TransactionMap<TK;TV;>;
MethodParameters:
Name Flags
map
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_2
invokevirtual org.h2.mvstore.tx.Transaction.setStatus:(I)J
pop2
1: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
invokevirtual org.h2.mvstore.tx.TransactionStore.storeTransaction:(Lorg/h2/mvstore/tx/Transaction;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/tx/Transaction;
public void commit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=1
start local 0 0: getstatic org.h2.mvstore.tx.Transaction.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
getfield org.h2.mvstore.tx.TransactionStore.openTransactions:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.h2.mvstore.tx.VersionedBitSet
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokevirtual org.h2.mvstore.tx.VersionedBitSet.get:(I)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: aload 0
iconst_3
invokevirtual org.h2.mvstore.tx.Transaction.setStatus:(I)J
lstore 3
start local 3 4: lload 3
invokestatic org.h2.mvstore.tx.Transaction.hasChanges:(J)Z
istore 2
5: lload 3
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
istore 5
start local 5 6: iload 2
ifeq 22
7: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
iload 5
iconst_3
if_icmpne 8
iconst_1
goto 9
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int long int
StackMap stack: org.h2.mvstore.tx.TransactionStore org.h2.mvstore.tx.Transaction
8: iconst_0
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int long int
StackMap stack: org.h2.mvstore.tx.TransactionStore org.h2.mvstore.tx.Transaction int
9: invokevirtual org.h2.mvstore.tx.TransactionStore.commit:(Lorg/h2/mvstore/tx/Transaction;Z)V
end local 5 end local 3 10: goto 22
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int
StackMap stack: java.lang.Throwable
11: astore 3
start local 3 12: aload 3
astore 1
13: aload 3
athrow
end local 3 14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
15: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
iload 2
invokevirtual org.h2.mvstore.tx.TransactionStore.endTransaction:(Lorg/h2/mvstore/tx/Transaction;Z)V
16: goto 21
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int top top top java.lang.Throwable
StackMap stack: java.lang.Throwable
17: astore 7
start local 7 18: aload 1
ifnonnull 20
19: aload 7
athrow
20: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
end local 7 21: StackMap locals:
StackMap stack:
aload 6
athrow
22: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
iload 2
invokevirtual org.h2.mvstore.tx.TransactionStore.endTransaction:(Lorg/h2/mvstore/tx/Transaction;Z)V
23: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 7
start local 7 25: aload 1
ifnonnull 27
26: aload 7
athrow
27: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int top top top top java.lang.Throwable
StackMap stack:
aload 1
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
end local 7 28: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/h2/mvstore/tx/Transaction;
2 29 1 ex Ljava/lang/Throwable;
3 29 2 hasChanges Z
4 10 3 state J
6 10 5 previousStatus I
12 14 3 e Ljava/lang/Throwable;
18 21 7 e Ljava/lang/Throwable;
25 28 7 e Ljava/lang/Throwable;
Exception table:
from to target type
3 10 11 Class java.lang.Throwable
3 14 14 any
15 16 17 Class java.lang.Throwable
22 23 24 Class java.lang.Throwable
public void rollbackToSavepoint(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: aload 0
iconst_4
invokevirtual org.h2.mvstore.tx.Transaction.setStatus:(I)J
lstore 3
start local 3 1: lload 3
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lstore 5
start local 5 2: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
lload 5
lload 1
invokevirtual org.h2.mvstore.tx.TransactionStore.rollbackTo:(Lorg/h2/mvstore/tx/Transaction;JJ)V
3: goto 12
StackMap locals: org.h2.mvstore.tx.Transaction long long long
StackMap stack: java.lang.Throwable
4: astore 8
5: aload 0
getfield org.h2.mvstore.tx.Transaction.notificationRequested:Z
ifeq 7
6: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.notifyAllWaitingTransactions:()V
7: StackMap locals: org.h2.mvstore.tx.Transaction long long long top java.lang.Throwable
StackMap stack:
iconst_4
lload 5
lload 3
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
lstore 9
start local 9 8: iconst_1
lload 1
iconst_1
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
lstore 11
start local 11 9: StackMap locals: long long
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
lload 9
lload 11
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
istore 7
start local 7 10: iload 7
ifne 11
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lload 9
lcmp
ifeq 9
end local 11 end local 9 11: StackMap locals: org.h2.mvstore.tx.Transaction long long long int java.lang.Throwable
StackMap stack:
aload 8
athrow
end local 7 12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.notificationRequested:Z
ifeq 14
13: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.notifyAllWaitingTransactions:()V
14: StackMap locals:
StackMap stack:
iconst_4
lload 5
lload 3
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
lstore 9
start local 9 15: iconst_1
lload 1
iconst_1
invokestatic org.h2.mvstore.tx.Transaction.composeState:(IJZ)J
lstore 11
start local 11 16: StackMap locals: org.h2.mvstore.tx.Transaction long long long top top long long
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
lload 9
lload 11
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
istore 7
start local 7 17: iload 7
ifne 18
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lload 9
lcmp
ifeq 16
end local 11 end local 9 18: StackMap locals: org.h2.mvstore.tx.Transaction long long long int
StackMap stack:
iload 7
ifne 23
19: bipush 103
20: ldc "Transaction {0} concurrently modified while rollback to savepoint was in progress"
iconst_1
anewarray java.lang.Object
dup
iconst_0
21: aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
22: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
23: StackMap locals:
StackMap stack:
return
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/mvstore/tx/Transaction;
0 24 1 savepointId J
1 24 3 lastState J
2 24 5 logId J
10 12 7 success Z
17 24 7 success Z
8 11 9 expectedState J
15 18 9 expectedState J
9 11 11 newState J
16 18 11 newState J
Exception table:
from to target type
2 4 4 any
MethodParameters:
Name Flags
savepointId
public void rollback();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
iconst_5
invokevirtual org.h2.mvstore.tx.Transaction.setStatus:(I)J
lstore 2
start local 2 2: lload 2
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lstore 4
start local 4 3: lload 4
lconst_0
lcmp
ifle 17
4: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
lload 4
lconst_0
invokevirtual org.h2.mvstore.tx.TransactionStore.rollbackTo:(Lorg/h2/mvstore/tx/Transaction;JJ)V
end local 4 end local 2 5: goto 17
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable
StackMap stack: java.lang.Throwable
6: astore 2
start local 2 7: aload 2
astore 1
8: aload 2
athrow
end local 2 9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
10: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
iconst_1
invokevirtual org.h2.mvstore.tx.TransactionStore.endTransaction:(Lorg/h2/mvstore/tx/Transaction;Z)V
11: goto 16
StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable top top top top java.lang.Throwable
StackMap stack: java.lang.Throwable
12: astore 7
start local 7 13: aload 1
ifnonnull 15
14: aload 7
athrow
15: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
end local 7 16: StackMap locals:
StackMap stack:
aload 6
athrow
17: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
iconst_1
invokevirtual org.h2.mvstore.tx.TransactionStore.endTransaction:(Lorg/h2/mvstore/tx/Transaction;Z)V
18: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 7
start local 7 20: aload 1
ifnonnull 22
21: aload 7
athrow
22: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable top top top top top java.lang.Throwable
StackMap stack:
aload 1
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
end local 7 23: StackMap locals: org.h2.mvstore.tx.Transaction java.lang.Throwable
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/mvstore/tx/Transaction;
1 24 1 ex Ljava/lang/Throwable;
2 5 2 lastState J
3 5 4 logId J
7 9 2 e Ljava/lang/Throwable;
13 16 7 e Ljava/lang/Throwable;
20 23 7 e Ljava/lang/Throwable;
Exception table:
from to target type
1 5 6 Class java.lang.Throwable
1 9 9 any
10 11 12 Class java.lang.Throwable
17 18 19 Class java.lang.Throwable
public java.util.Iterator<org.h2.mvstore.tx.TransactionStore$Change> getChanges(long);
descriptor: (J)Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
aload 0
invokevirtual org.h2.mvstore.tx.Transaction.getLogId:()J
lload 1
invokevirtual org.h2.mvstore.tx.TransactionStore.getChanges:(Lorg/h2/mvstore/tx/Transaction;JJ)Ljava/util/Iterator;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
0 1 1 savepointId J
Signature: (J)Ljava/util/Iterator<Lorg/h2/mvstore/tx/TransactionStore$Change;>;
MethodParameters:
Name Flags
savepointId
private long getLogId();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
private void checkOpen(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpeq 4
1: bipush 103
2: ldc "Transaction {0} has status {1}, not OPEN"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
getstatic org.h2.mvstore.tx.Transaction.STATUS_NAMES:[Ljava/lang/String;
iload 1
aaload
aastore
3: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/tx/Transaction;
0 5 1 status I
MethodParameters:
Name Flags
status
private void checkNotClosed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.getStatus:()I
ifne 3
1: iconst_4
ldc "Transaction {0} is closed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
2: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/tx/Transaction;
void closeIt();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.h2.mvstore.tx.Transaction.setStatus:(I)J
lstore 1
start local 1 1: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
getfield org.h2.mvstore.tx.TransactionStore.store:Lorg/h2/mvstore/MVStore;
aload 0
getfield org.h2.mvstore.tx.Transaction.txCounter:Lorg/h2/mvstore/MVStore$TxCounter;
invokevirtual org.h2.mvstore.MVStore.deregisterVersionUsage:(Lorg/h2/mvstore/MVStore$TxCounter;)V
2: lload 1
invokestatic org.h2.mvstore.tx.Transaction.hasChanges:(J)Z
ifne 3
lload 1
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
ifeq 5
StackMap locals: long
StackMap stack:
3: aload 0
getfield org.h2.mvstore.tx.Transaction.notificationRequested:Z
ifeq 5
4: aload 0
invokevirtual org.h2.mvstore.tx.Transaction.notifyAllWaitingTransactions:()V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/mvstore/tx/Transaction;
1 6 1 lastState J
private synchronized void notifyAllWaitingTransactions();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.notifyAll:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/tx/Transaction;
public boolean waitFor(org.h2.mvstore.tx.Transaction, org.h2.mvstore.MVMap<?, org.h2.value.VersionedValue>, );
descriptor: (Lorg/h2/mvstore/tx/Transaction;Lorg/h2/mvstore/MVMap;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
putfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
1: aload 0
aload 2
putfield org.h2.mvstore.tx.Transaction.blockingMap:Lorg/h2/mvstore/MVMap;
2: aload 0
aload 3
putfield org.h2.mvstore.tx.Transaction.blockingKey:Ljava/lang/Object;
3: aload 0
aload 1
invokevirtual org.h2.mvstore.tx.Transaction.isDeadlocked:(Lorg/h2/mvstore/tx/Transaction;)Z
ifeq 25
4: new java.lang.StringBuilder
dup
5: ldc "Transaction %d has been chosen as a deadlock victim. Details:%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
6: invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 7: aload 1
astore 5
start local 5 8: goto 23
start local 6 9: StackMap locals: java.lang.StringBuilder org.h2.mvstore.tx.Transaction org.h2.mvstore.tx.Transaction
StackMap stack:
aload 4
10: ldc "Transaction %d attempts to update map <%s> entry with key <%s> modified by transaction %s%n"
iconst_4
anewarray java.lang.Object
dup
iconst_0
11: aload 5
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 5
getfield org.h2.mvstore.tx.Transaction.blockingMap:Lorg/h2/mvstore/MVMap;
invokevirtual org.h2.mvstore.MVMap.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 5
getfield org.h2.mvstore.tx.Transaction.blockingKey:Ljava/lang/Object;
aastore
dup
iconst_3
aload 5
getfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
aastore
12: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 6
aload 0
if_acmpne 22
14: aload 4
15: ldc "Transaction %d attempts to update map <%s> entry with key <%s> modified by transaction %s%n"
iconst_4
anewarray java.lang.Object
dup
iconst_0
16: aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield org.h2.mvstore.tx.Transaction.blockingMap:Lorg/h2/mvstore/MVMap;
invokevirtual org.h2.mvstore.MVMap.getName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
getfield org.h2.mvstore.tx.Transaction.blockingKey:Ljava/lang/Object;
aastore
dup
iconst_3
aload 1
aastore
17: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 0
aload 1
invokevirtual org.h2.mvstore.tx.Transaction.isDeadlocked:(Lorg/h2/mvstore/tx/Transaction;)Z
ifeq 22
19: bipush 105
20: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
21: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
22: StackMap locals:
StackMap stack:
aload 6
astore 5
end local 6 StackMap locals:
StackMap stack:
23: aload 5
getfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
dup
astore 6
start local 6 24: ifnonnull 9
end local 6 end local 5 end local 4 25: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.h2.mvstore.tx.Transaction.timeoutMillis:I
invokevirtual org.h2.mvstore.tx.Transaction.waitForThisToEnd:(I)Z
istore 5
26: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingMap:Lorg/h2/mvstore/MVMap;
27: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingKey:Ljava/lang/Object;
28: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
29: iload 5
ireturn
30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
31: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingMap:Lorg/h2/mvstore/MVMap;
32: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingKey:Ljava/lang/Object;
33: aload 0
aconst_null
putfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
34: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/h2/mvstore/tx/Transaction;
0 35 1 toWaitFor Lorg/h2/mvstore/tx/Transaction;
0 35 2 map Lorg/h2/mvstore/MVMap<*Lorg/h2/value/VersionedValue;>;
0 35 3 key Ljava/lang/Object;
7 25 4 details Ljava/lang/StringBuilder;
8 25 5 tx Lorg/h2/mvstore/tx/Transaction;
9 23 6 nextTx Lorg/h2/mvstore/tx/Transaction;
24 25 6 nextTx Lorg/h2/mvstore/tx/Transaction;
Exception table:
from to target type
25 26 30 any
Signature: (Lorg/h2/mvstore/tx/Transaction;Lorg/h2/mvstore/MVMap<*Lorg/h2/value/VersionedValue;>;Ljava/lang/Object;)Z
MethodParameters:
Name Flags
toWaitFor
map
key
private boolean isDeadlocked(org.h2.mvstore.tx.Transaction);
descriptor: (Lorg/h2/mvstore/tx/Transaction;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: goto 5
start local 3 2: StackMap locals: org.h2.mvstore.tx.Transaction org.h2.mvstore.tx.Transaction
StackMap stack:
aload 3
aload 0
if_acmpne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 3
astore 2
end local 3 5: StackMap locals:
StackMap stack:
aload 2
getfield org.h2.mvstore.tx.Transaction.blockingTransaction:Lorg/h2/mvstore/tx/Transaction;
dup
astore 3
start local 3 6: ifnull 7
aload 2
invokevirtual org.h2.mvstore.tx.Transaction.getStatus:()I
iconst_1
if_icmpeq 2
end local 3 end local 2 7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/mvstore/tx/Transaction;
0 8 1 toWaitFor Lorg/h2/mvstore/tx/Transaction;
1 7 2 tx Lorg/h2/mvstore/tx/Transaction;
2 5 3 nextTx Lorg/h2/mvstore/tx/Transaction;
6 7 3 nextTx Lorg/h2/mvstore/tx/Transaction;
MethodParameters:
Name Flags
toWaitFor
private synchronized boolean waitForThisToEnd(int);
descriptor: (I)Z
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.currentTimeMillis:()J
iload 1
i2l
ladd
lstore 2
start local 2 1: aload 0
iconst_1
putfield org.h2.mvstore.tx.Transaction.notificationRequested:Z
2: goto 10
start local 4 start local 6 3: StackMap locals: long long int
StackMap stack:
lload 2
invokestatic java.lang.System.currentTimeMillis:()J
lsub
lstore 7
start local 7 4: lload 7
lconst_0
lcmp
ifgt 6
5: iconst_0
ireturn
6: StackMap locals: long
StackMap stack:
aload 0
lload 7
invokevirtual java.lang.Object.wait:(J)V
7: goto 10
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: pop
9: iconst_0
ireturn
end local 7 end local 6 end local 4 10: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
dup2
lstore 4
start local 4 11: invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
dup
istore 6
start local 6 12: ifeq 14
13: iload 6
iconst_5
if_icmpeq 14
lload 4
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
ifeq 3
14: StackMap locals: long int
StackMap stack:
iconst_1
ireturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/mvstore/tx/Transaction;
0 15 1 millis I
1 15 2 until J
3 10 4 state J
11 15 4 state J
3 10 6 status I
12 15 6 status I
4 10 7 dur J
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
MethodParameters:
Name Flags
millis
public <K, V> void removeMap(org.h2.mvstore.tx.TransactionMap<K, V>);
descriptor: (Lorg/h2/mvstore/tx/TransactionMap;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.tx.Transaction.store:Lorg/h2/mvstore/tx/TransactionStore;
aload 1
invokevirtual org.h2.mvstore.tx.TransactionStore.removeMap:(Lorg/h2/mvstore/tx/TransactionMap;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/tx/Transaction;
0 2 1 map Lorg/h2/mvstore/tx/TransactionMap<TK;TV;>;
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/h2/mvstore/tx/TransactionMap<TK;TV;>;)V
MethodParameters:
Name Flags
map
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield org.h2.mvstore.tx.Transaction.transactionId:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.mvstore.tx.Transaction.sequenceNum:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.h2.mvstore.tx.Transaction.stateToString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
private java.lang.String stateToString();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.Transaction.statusAndLogId:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
invokestatic org.h2.mvstore.tx.Transaction.stateToString:(J)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/Transaction;
private static java.lang.String stateToString(long);
descriptor: (J)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
getstatic org.h2.mvstore.tx.Transaction.STATUS_NAMES:[Ljava/lang/String;
lload 0
invokestatic org.h2.mvstore.tx.Transaction.getStatus:(J)I
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokestatic org.h2.mvstore.tx.Transaction.hasRollback:(J)Z
ifeq 1
ldc "<"
goto 2
StackMap locals:
StackMap stack: java.lang.StringBuilder
1: ldc ""
StackMap locals: long
StackMap stack: java.lang.StringBuilder java.lang.String
2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 0
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 state J
MethodParameters:
Name Flags
state
private static int getStatus(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
bipush 41
lushr
l2i
bipush 15
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 state J
MethodParameters:
Name Flags
state
private static long getLogId(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 2199023255551
land
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 state J
MethodParameters:
Name Flags
state
private static boolean hasRollback(long);
descriptor: (J)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 35184372088832
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 state J
MethodParameters:
Name Flags
state
private static boolean hasChanges(long);
descriptor: (J)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
invokestatic org.h2.mvstore.tx.Transaction.getLogId:(J)J
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 state J
MethodParameters:
Name Flags
state
private static long composeState(int, long, boolean);
descriptor: (IJZ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic org.h2.mvstore.tx.Transaction.$assertionsDisabled:Z
ifne 1
lload 1
ldc 1099511627776
lcmp
iflt 1
new java.lang.AssertionError
dup
lload 1
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.h2.mvstore.tx.Transaction.$assertionsDisabled:Z
ifne 2
iload 0
bipush -16
iand
ifeq 2
new java.lang.AssertionError
dup
iload 0
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
2: StackMap locals:
StackMap stack:
iload 3
ifeq 4
3: iload 0
bipush 16
ior
istore 0
4: StackMap locals:
StackMap stack:
iload 0
i2l
bipush 41
lshl
lload 1
lor
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 status I
0 5 1 logId J
0 5 3 hasRollback Z
MethodParameters:
Name Flags
status
logId
hasRollback
}
SourceFile: "Transaction.java"
InnerClasses:
public final TxCounter = org.h2.mvstore.MVStore$TxCounter of org.h2.mvstore.MVStore
public Change = org.h2.mvstore.tx.TransactionStore$Change of org.h2.mvstore.tx.TransactionStore
public abstract RollbackListener = org.h2.mvstore.tx.TransactionStore$RollbackListener of org.h2.mvstore.tx.TransactionStore