class org.h2.store.fs.FileRetryOnInterrupt extends org.h2.store.fs.FileBase
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.store.fs.FileRetryOnInterrupt
super_class: org.h2.store.fs.FileBase
{
private final java.lang.String fileName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String mode;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.channels.FileChannel channel;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0002) ACC_PRIVATE
private org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry lock;
descriptor: Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial org.h2.store.fs.FileBase.<init>:()V
1: aload 0
aload 1
putfield org.h2.store.fs.FileRetryOnInterrupt.fileName:Ljava/lang/String;
2: aload 0
aload 2
putfield org.h2.store.fs.FileRetryOnInterrupt.mode:Ljava/lang/String;
3: aload 0
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.open:()V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 5 1 fileName Ljava/lang/String;
0 5 2 mode Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fileName
mode
private void open();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.fileName:Ljava/lang/String;
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.mode:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.open:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/channels/FileChannel;
putfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
Exceptions:
throws java.io.IOException
private void reopen(int, java.io.IOException);
descriptor: (ILjava/io/IOException;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 20
if_icmple 2
1: aload 2
athrow
2: StackMap locals:
StackMap stack:
aload 2
instanceof java.nio.channels.ClosedByInterruptException
ifne 5
3: aload 2
instanceof java.nio.channels.ClosedChannelException
ifne 5
4: aload 2
athrow
5: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
pop
6: aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
astore 3
start local 3 7: aload 0
dup
astore 4
monitorenter
8: aload 3
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
if_acmpne 11
9: aload 0
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.open:()V
10: aload 0
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reLock:()V
11: StackMap locals: java.nio.channels.FileChannel org.h2.store.fs.FileRetryOnInterrupt
StackMap stack:
aload 4
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 4
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 16 1 i I
0 16 2 e Ljava/io/IOException;
7 16 3 before Ljava/nio/channels/FileChannel;
Exception table:
from to target type
8 12 13 any
13 14 13 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
i
e
private void reLock();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
getfield org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.base:Ljava/nio/channels/FileLock;
invokevirtual java.nio.channels.FileLock.release:()V
3: goto 5
StackMap locals:
StackMap stack: java.io.IOException
4: pop
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
invokevirtual org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.position:()J
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
invokevirtual org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.size:()J
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
invokevirtual org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.isShared:()Z
invokevirtual java.nio.channels.FileChannel.tryLock:(JJZ)Ljava/nio/channels/FileLock;
astore 1
start local 1 6: aload 1
ifnonnull 8
7: new java.io.IOException
dup
ldc "Re-locking failed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.nio.channels.FileLock
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
aload 1
putfield org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.base:Ljava/nio/channels/FileLock;
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
6 10 1 l2 Ljava/nio/channels/FileLock;
Exception table:
from to target type
2 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
public void implCloseChannel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
Exception table:
from to target type
0 1 2 Class java.io.IOException
Exceptions:
throws java.io.IOException
public long position();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
2: lreturn
3: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 4: aload 0
iload 1
aload 2
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 2 5: iinc 1 1
goto 1
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
1 6 1 i I
4 5 2 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Exceptions:
throws java.io.IOException
public long size();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.size:()J
2: lreturn
3: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 4: aload 0
iload 1
aload 2
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 2 5: iinc 1 1
goto 1
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
1 6 1 i I
4 5 2 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Exceptions:
throws java.io.IOException
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.position:()J
lstore 2
start local 2 1: iconst_0
istore 4
start local 4 2: StackMap locals: long int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
aload 1
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;)I
3: ireturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 5: aload 0
iload 4
aload 5
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
6: aload 0
lload 2
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.position:(J)Ljava/nio/channels/FileChannel;
pop
end local 5 7: iinc 4 1
goto 2
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 8 1 dst Ljava/nio/ByteBuffer;
1 8 2 pos J
2 8 4 i I
5 7 5 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
public int read(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 4
start local 4 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
aload 1
lload 2
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
2: ireturn
3: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 4: aload 0
iload 4
aload 5
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 5 5: iinc 4 1
goto 1
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 6 1 dst Ljava/nio/ByteBuffer;
0 6 2 position J
1 6 4 i I
4 5 5 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
position
public java.nio.channels.FileChannel position(long);
descriptor: (J)Ljava/nio/channels/FileChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
lload 1
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
2: aload 0
3: areturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 5: aload 0
iload 3
aload 4
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 4 6: iinc 3 1
goto 1
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 7 1 pos J
1 7 3 i I
5 6 4 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pos
public java.nio.channels.FileChannel truncate(long);
descriptor: (J)Ljava/nio/channels/FileChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
lload 1
invokevirtual java.nio.channels.FileChannel.truncate:(J)Ljava/nio/channels/FileChannel;
pop
2: aload 0
3: areturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 5: aload 0
iload 3
aload 4
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 4 6: iinc 3 1
goto 1
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 7 1 newLength J
1 7 3 i I
5 6 4 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
newLength
public void force(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
iload 1
invokevirtual java.nio.channels.FileChannel.force:(Z)V
2: return
3: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 4: aload 0
iload 2
aload 3
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 3 5: iinc 2 1
goto 1
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 6 1 metaData Z
1 6 2 i I
4 5 3 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
metaData
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.position:()J
lstore 2
start local 2 1: iconst_0
istore 4
start local 4 2: StackMap locals: long int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
aload 1
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;)I
3: ireturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 5: aload 0
iload 4
aload 5
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
6: aload 0
lload 2
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.position:(J)Ljava/nio/channels/FileChannel;
pop
end local 5 7: iinc 4 1
goto 2
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 8 1 src Ljava/nio/ByteBuffer;
1 8 2 pos J
2 8 4 i I
5 7 5 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public int write(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 4
start local 4 1: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
aload 1
lload 2
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;J)I
2: ireturn
3: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 4: aload 0
iload 4
aload 5
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.reopen:(ILjava/io/IOException;)V
end local 5 5: iinc 4 1
goto 1
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 6 1 src Ljava/nio/ByteBuffer;
0 6 2 position J
1 6 4 i I
4 5 5 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
position
public synchronized java.nio.channels.FileLock tryLock(long, long, boolean);
descriptor: (JJZ)Ljava/nio/channels/FileLock;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 5 0: aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.channel:Ljava/nio/channels/FileChannel;
lload 1
lload 3
iload 5
invokevirtual java.nio.channels.FileChannel.tryLock:(JJZ)Ljava/nio/channels/FileLock;
astore 6
start local 6 1: aload 6
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.nio.channels.FileLock
StackMap stack:
aload 0
new org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry
dup
aload 6
aload 0
invokespecial org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry.<init>:(Ljava/nio/channels/FileLock;Ljava/nio/channels/FileChannel;)V
putfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
4: aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.lock:Lorg/h2/store/fs/FileRetryOnInterrupt$FileLockRetry;
areturn
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/fs/FileRetryOnInterrupt;
0 5 1 position J
0 5 3 size J
0 5 5 shared Z
1 5 6 l Ljava/nio/channels/FileLock;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position
size
shared
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
ldc "retry:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.fs.FileRetryOnInterrupt.fileName: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/store/fs/FileRetryOnInterrupt;
public java.nio.channels.SeekableByteChannel position(long);
descriptor: (J)Ljava/nio/channels/SeekableByteChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
0: aload 0
lload 1
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.position:(J)Ljava/nio/channels/FileChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public java.nio.channels.SeekableByteChannel truncate(long);
descriptor: (J)Ljava/nio/channels/SeekableByteChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
0: aload 0
lload 1
invokevirtual org.h2.store.fs.FileRetryOnInterrupt.truncate:(J)Ljava/nio/channels/FileChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
}
SourceFile: "FilePathRetryOnInterrupt.java"
NestMembers:
org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry
InnerClasses:
FileLockRetry = org.h2.store.fs.FileRetryOnInterrupt$FileLockRetry of org.h2.store.fs.FileRetryOnInterrupt