public class org.h2.engine.UndoLog
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.engine.UndoLog
super_class: java.lang.Object
{
private final org.h2.engine.Database database;
descriptor: Lorg/h2/engine/Database;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<java.lang.Long> storedEntriesPos;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/lang/Long;>;
private final java.util.ArrayList<org.h2.engine.UndoLogRecord> records;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/h2/engine/UndoLogRecord;>;
private org.h2.store.FileStore file;
descriptor: Lorg/h2/store/FileStore;
flags: (0x0002) ACC_PRIVATE
private org.h2.store.Data rowBuff;
descriptor: Lorg/h2/store/Data;
flags: (0x0002) ACC_PRIVATE
private int memoryUndo;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int storedEntries;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.HashMap<java.lang.Integer, org.h2.table.Table> tables;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lorg/h2/table/Table;>;
void <init>(org.h2.engine.Database);
descriptor: (Lorg/h2/engine/Database;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.engine.UndoLog.storedEntriesPos:Ljava/util/ArrayList;
2: aload 0
invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
putfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
3: aload 0
aload 1
putfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/engine/UndoLog;
0 5 1 database Lorg/h2/engine/Database;
MethodParameters:
Name Flags
database
int size();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.engine.UndoLog.storedEntries:I
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/engine/UndoLog;
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
1: aload 0
iconst_0
putfield org.h2.engine.UndoLog.storedEntries:I
2: aload 0
getfield org.h2.engine.UndoLog.storedEntriesPos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
3: aload 0
iconst_0
putfield org.h2.engine.UndoLog.memoryUndo:I
4: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
ifnull 8
5: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
invokevirtual org.h2.store.FileStore.closeAndDeleteSilently:()V
6: aload 0
aconst_null
putfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
7: aload 0
aconst_null
putfield org.h2.engine.UndoLog.rowBuff:Lorg/h2/store/Data;
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/engine/UndoLog;
public org.h2.engine.UndoLogRecord getLast();
descriptor: ()Lorg/h2/engine/UndoLogRecord;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 1
start local 1 1: iload 1
ifge 17
aload 0
getfield org.h2.engine.UndoLog.storedEntries:I
ifle 17
2: aload 0
getfield org.h2.engine.UndoLog.storedEntriesPos:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 2
start local 2 3: aload 0
getfield org.h2.engine.UndoLog.storedEntriesPos:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 3
start local 3 4: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
invokevirtual org.h2.store.FileStore.length:()J
lstore 5
start local 5 5: lload 5
lload 3
lsub
l2i
istore 7
start local 7 6: aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
iload 7
iconst_1
invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
astore 8
start local 8 7: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
lload 3
invokevirtual org.h2.store.FileStore.seek:(J)V
8: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
aload 8
invokevirtual org.h2.store.Data.getBytes:()[B
iconst_0
iload 7
invokevirtual org.h2.store.FileStore.readFully:([BII)V
9: goto 13
10: StackMap locals: org.h2.engine.UndoLog int int long long int org.h2.store.Data
StackMap stack:
aload 8
aload 0
invokestatic org.h2.engine.UndoLogRecord.loadFromBuffer:(Lorg/h2/store/Data;Lorg/h2/engine/UndoLog;)Lorg/h2/engine/UndoLogRecord;
astore 9
start local 9 11: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: aload 0
dup
getfield org.h2.engine.UndoLog.memoryUndo:I
iconst_1
iadd
putfield org.h2.engine.UndoLog.memoryUndo:I
end local 9 13: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.h2.store.Data.length:()I
iload 7
if_icmplt 10
14: aload 0
dup
getfield org.h2.engine.UndoLog.storedEntries:I
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
isub
putfield org.h2.engine.UndoLog.storedEntries:I
15: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
lload 3
invokevirtual org.h2.store.FileStore.setLength:(J)V
16: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
lload 3
invokevirtual org.h2.store.FileStore.seek:(J)V
end local 8 end local 7 end local 5 end local 3 end local 2 17: StackMap locals: org.h2.engine.UndoLog int
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 1
18: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.engine.UndoLogRecord
astore 2
start local 2 19: aload 2
invokevirtual org.h2.engine.UndoLogRecord.isStored:()Z
ifeq 39
20: iconst_0
iload 1
aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMaxMemoryUndo:()I
iconst_2
idiv
isub
invokestatic java.lang.Math.max:(II)I
istore 3
start local 3 21: aconst_null
astore 4
start local 4 22: iload 3
istore 5
start local 5 23: goto 31
24: StackMap locals: org.h2.engine.UndoLog int org.h2.engine.UndoLogRecord int org.h2.engine.UndoLogRecord int
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.engine.UndoLogRecord
astore 6
start local 6 25: aload 6
invokevirtual org.h2.engine.UndoLogRecord.isStored:()Z
ifeq 30
26: aload 6
aload 0
getfield org.h2.engine.UndoLog.rowBuff:Lorg/h2/store/Data;
aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
aload 0
invokevirtual org.h2.engine.UndoLogRecord.load:(Lorg/h2/store/Data;Lorg/h2/store/FileStore;Lorg/h2/engine/UndoLog;)V
27: aload 0
dup
getfield org.h2.engine.UndoLog.memoryUndo:I
iconst_1
iadd
putfield org.h2.engine.UndoLog.memoryUndo:I
28: aload 4
ifnonnull 30
29: aload 6
astore 4
end local 6 30: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
iload 1
if_icmple 24
end local 5 32: iconst_0
istore 5
start local 5 33: goto 37
34: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
iload 5
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.engine.UndoLogRecord
astore 6
start local 6 35: aload 6
invokevirtual org.h2.engine.UndoLogRecord.invalidatePos:()V
end local 6 36: iinc 5 1
StackMap locals:
StackMap stack:
37: iload 5
iload 1
if_icmplt 34
end local 5 38: aload 0
aload 4
invokevirtual org.h2.engine.UndoLogRecord.getFilePos:()J
invokevirtual org.h2.engine.UndoLog.seek:(J)V
end local 4 end local 3 39: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/h2/engine/UndoLog;
1 40 1 i I
3 17 2 last I
4 17 3 pos J
5 17 5 end J
6 17 7 bufferLength I
7 17 8 buff Lorg/h2/store/Data;
11 13 9 e Lorg/h2/engine/UndoLogRecord;
19 40 2 entry Lorg/h2/engine/UndoLogRecord;
21 39 3 start I
22 39 4 first Lorg/h2/engine/UndoLogRecord;
23 32 5 j I
25 30 6 e Lorg/h2/engine/UndoLogRecord;
33 38 5 k I
35 36 6 e Lorg/h2/engine/UndoLogRecord;
void seek(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
lload 1
ldc 16
lmul
invokevirtual org.h2.store.FileStore.seek:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/engine/UndoLog;
0 2 1 filePos J
MethodParameters:
Name Flags
filePos
void removeLast();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 1
start local 1 1: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
iload 1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast org.h2.engine.UndoLogRecord
astore 2
start local 2 2: aload 2
invokevirtual org.h2.engine.UndoLogRecord.isStored:()Z
ifne 4
3: aload 0
dup
getfield org.h2.engine.UndoLog.memoryUndo:I
iconst_1
isub
putfield org.h2.engine.UndoLog.memoryUndo:I
4: StackMap locals: int org.h2.engine.UndoLogRecord
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/engine/UndoLog;
1 5 1 i I
2 5 2 r Lorg/h2/engine/UndoLogRecord;
void add(org.h2.engine.UndoLogRecord);
descriptor: (Lorg/h2/engine/UndoLogRecord;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: aload 0
dup
getfield org.h2.engine.UndoLog.memoryUndo:I
iconst_1
iadd
putfield org.h2.engine.UndoLog.memoryUndo:I
2: aload 0
getfield org.h2.engine.UndoLog.memoryUndo:I
aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.getMaxMemoryUndo:()I
if_icmple 26
3: aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.isPersistent:()Z
ifeq 26
4: aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.isMVStore:()Z
ifne 26
5: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
ifnonnull 11
6: aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
invokevirtual org.h2.engine.Database.createTempFile:()Ljava/lang/String;
astore 2
start local 2 7: aload 0
aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
aload 2
ldc "rw"
iconst_0
invokevirtual org.h2.engine.Database.openFile:(Ljava/lang/String;Ljava/lang/String;Z)Lorg/h2/store/FileStore;
putfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
8: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
invokevirtual org.h2.store.FileStore.autoDelete:()V
9: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
iconst_0
invokevirtual org.h2.store.FileStore.setCheckedWriting:(Z)V
10: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
ldc 48
invokevirtual org.h2.store.FileStore.setLength:(J)V
end local 2 11: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.database:Lorg/h2/engine/Database;
sipush 4096
iconst_1
invokestatic org.h2.store.Data.create:(Lorg/h2/store/DataHandler;IZ)Lorg/h2/store/Data;
astore 2
start local 2 12: iconst_0
istore 3
start local 3 13: goto 22
14: StackMap locals: org.h2.store.Data int
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.h2.engine.UndoLogRecord
astore 4
start local 4 15: aload 2
sipush 4096
invokevirtual org.h2.store.Data.checkCapacity:(I)V
16: aload 4
aload 2
aload 0
invokevirtual org.h2.engine.UndoLogRecord.append:(Lorg/h2/store/Data;Lorg/h2/engine/UndoLog;)V
17: iload 3
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
if_icmpeq 18
aload 2
invokevirtual org.h2.store.Data.length:()I
ldc 1048576
if_icmple 21
18: StackMap locals: org.h2.engine.UndoLogRecord
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.storedEntriesPos:Ljava/util/ArrayList;
aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
invokevirtual org.h2.store.FileStore.getFilePointer:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
19: aload 0
getfield org.h2.engine.UndoLog.file:Lorg/h2/store/FileStore;
aload 2
invokevirtual org.h2.store.Data.getBytes:()[B
iconst_0
aload 2
invokevirtual org.h2.store.Data.length:()I
invokevirtual org.h2.store.FileStore.write:([BII)V
20: aload 2
invokevirtual org.h2.store.Data.reset:()V
end local 4 21: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
22: iload 3
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 14
end local 3 23: aload 0
dup
getfield org.h2.engine.UndoLog.storedEntries:I
aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iadd
putfield org.h2.engine.UndoLog.storedEntries:I
24: aload 0
iconst_0
putfield org.h2.engine.UndoLog.memoryUndo:I
25: aload 0
getfield org.h2.engine.UndoLog.records:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
end local 2 26: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/h2/engine/UndoLog;
0 27 1 entry Lorg/h2/engine/UndoLogRecord;
7 11 2 fileName Ljava/lang/String;
12 26 2 buff Lorg/h2/store/Data;
13 23 3 i I
15 21 4 r Lorg/h2/engine/UndoLogRecord;
MethodParameters:
Name Flags
entry
int getTableId(org.h2.table.Table);
descriptor: (Lorg/h2/table/Table;)I
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.h2.table.Table.getId:()I
istore 2
start local 2 1: aload 0
getfield org.h2.engine.UndoLog.tables:Ljava/util/HashMap;
ifnonnull 3
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.engine.UndoLog.tables:Ljava/util/HashMap;
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.engine.UndoLog.tables:Ljava/util/HashMap;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/engine/UndoLog;
0 5 1 table Lorg/h2/table/Table;
1 5 2 id I
MethodParameters:
Name Flags
table
org.h2.table.Table getTable(int);
descriptor: (I)Lorg/h2/table/Table;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.engine.UndoLog.tables:Ljava/util/HashMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.table.Table
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/engine/UndoLog;
0 1 1 id I
MethodParameters:
Name Flags
id
}
SourceFile: "UndoLog.java"