class sun.nio.fs.WindowsLinkSupport
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.WindowsLinkSupport
super_class: java.lang.Object
{
private static final sun.misc.Unsafe unsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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=1, locals=0, args_size=0
0: ldc Lsun/nio/fs/WindowsLinkSupport;
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 sun.nio.fs.WindowsLinkSupport.$assertionsDisabled:Z
3: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic sun.nio.fs.WindowsLinkSupport.unsafe:Lsun/misc/Unsafe;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/fs/WindowsLinkSupport;
static java.lang.String readLink(sun.nio.fs.WindowsPath);
descriptor: (Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
iconst_0
invokevirtual sun.nio.fs.WindowsPath.openForReadAttributeAccess:(Z)J
lstore 1
2: goto 5
StackMap locals: sun.nio.fs.WindowsPath long
StackMap stack: sun.nio.fs.WindowsException
3: astore 3
start local 3 4: aload 3
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 3 5: StackMap locals:
StackMap stack:
lload 1
invokestatic sun.nio.fs.WindowsLinkSupport.readLinkImpl:(J)Ljava/lang/String;
astore 4
6: lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
7: aload 4
areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
9: lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
10: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 path Lsun/nio/fs/WindowsPath;
1 11 1 handle J
4 5 3 x Lsun/nio/fs/WindowsException;
Exception table:
from to target type
1 2 3 Class sun.nio.fs.WindowsException
5 6 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
private static java.lang.String getFinalPath(sun.nio.fs.WindowsPath);
descriptor: (Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
iconst_1
invokevirtual sun.nio.fs.WindowsPath.openForReadAttributeAccess:(Z)J
lstore 1
2: goto 5
StackMap locals: sun.nio.fs.WindowsPath long
StackMap stack: sun.nio.fs.WindowsException
3: astore 3
start local 3 4: aload 3
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 3 5: StackMap locals:
StackMap stack:
lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetFinalPathNameByHandle:(J)Ljava/lang/String;
invokestatic sun.nio.fs.WindowsLinkSupport.stripPrefix:(Ljava/lang/String;)Ljava/lang/String;
astore 5
6: lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
7: aload 5
areturn
8: StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
astore 3
start local 3 9: aload 3
invokevirtual sun.nio.fs.WindowsException.lastError:()I
bipush 124
if_icmpeq 11
10: aload 3
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 3 11: StackMap locals:
StackMap stack:
lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
goto 15
12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
13: lload 1
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
14: aload 4
athrow
15: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 input Lsun/nio/fs/WindowsPath;
1 16 1 h J
4 5 3 x Lsun/nio/fs/WindowsException;
9 11 3 x Lsun/nio/fs/WindowsException;
Exception table:
from to target type
1 2 3 Class sun.nio.fs.WindowsException
5 6 8 Class sun.nio.fs.WindowsException
5 6 12 any
8 11 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
static java.lang.String getFinalPath(sun.nio.fs.WindowsPath, boolean);
descriptor: (Lsun/nio/fs/WindowsPath;Z)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.fs.WindowsPath.getFileSystem:()Lsun/nio/fs/WindowsFileSystem;
astore 2
start local 2 1: iload 1
ifeq 2
aload 2
invokevirtual sun.nio.fs.WindowsFileSystem.supportsLinks:()Z
ifne 4
2: StackMap locals: sun.nio.fs.WindowsFileSystem
StackMap stack:
aload 0
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokestatic sun.nio.fs.WindowsFileAttributes.get:(Lsun/nio/fs/WindowsPath;Z)Lsun/nio/fs/WindowsFileAttributes;
invokevirtual sun.nio.fs.WindowsFileAttributes.isSymbolicLink:()Z
ifne 9
5: aload 0
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
6: areturn
7: StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
astore 3
start local 3 8: aload 3
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 3 9: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.fs.WindowsLinkSupport.getFinalPath:(Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
astore 3
start local 3 10: aload 3
ifnull 12
11: aload 3
areturn
12: StackMap locals: java.lang.String
StackMap stack:
aload 0
astore 4
start local 4 13: iconst_0
istore 5
start local 5 14: StackMap locals: sun.nio.fs.WindowsPath int
StackMap stack:
aload 4
iconst_0
invokestatic sun.nio.fs.WindowsFileAttributes.get:(Lsun/nio/fs/WindowsPath;Z)Lsun/nio/fs/WindowsFileAttributes;
15: astore 6
start local 6 16: aload 6
invokevirtual sun.nio.fs.WindowsFileAttributes.isSymbolicLink:()Z
ifne 21
17: aload 4
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
18: areturn
end local 6 19: StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
astore 6
start local 6 20: aload 6
aload 4
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 6 21: StackMap locals:
StackMap stack:
aload 2
aload 4
invokestatic sun.nio.fs.WindowsLinkSupport.readLink:(Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
22: astore 6
start local 6 23: aload 4
invokevirtual sun.nio.fs.WindowsPath.getParent:()Lsun/nio/fs/WindowsPath;
astore 7
start local 7 24: aload 7
ifnonnull 29
25: aload 4
astore 8
start local 8 26: new sun.nio.fs.WindowsLinkSupport$1
dup
aload 8
invokespecial sun.nio.fs.WindowsLinkSupport$1.<init>:(Lsun/nio/fs/WindowsPath;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast sun.nio.fs.WindowsPath
27: astore 4
28: aload 4
invokevirtual sun.nio.fs.WindowsPath.getParent:()Lsun/nio/fs/WindowsPath;
astore 7
end local 8 29: StackMap locals: sun.nio.fs.WindowsPath sun.nio.fs.WindowsPath
StackMap stack:
aload 7
aload 6
invokevirtual sun.nio.fs.WindowsPath.resolve:(Ljava/nio/file/Path;)Lsun/nio/fs/WindowsPath;
astore 4
end local 7 end local 6 30: iinc 5 1
iload 5
bipush 32
31: if_icmplt 14
32: new java.nio.file.FileSystemException
dup
aload 0
invokevirtual sun.nio.fs.WindowsPath.getPathForExceptionMessage:()Ljava/lang/String;
aconst_null
33: ldc "Too many links"
34: invokespecial java.nio.file.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
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 35 0 input Lsun/nio/fs/WindowsPath;
0 35 1 followLinks Z
1 35 2 fs Lsun/nio/fs/WindowsFileSystem;
8 9 3 x Lsun/nio/fs/WindowsException;
10 35 3 result Ljava/lang/String;
13 35 4 target Lsun/nio/fs/WindowsPath;
14 35 5 linkCount I
16 19 6 attrs Lsun/nio/fs/WindowsFileAttributes;
20 21 6 x Lsun/nio/fs/WindowsException;
23 30 6 link Lsun/nio/fs/WindowsPath;
24 30 7 parent Lsun/nio/fs/WindowsPath;
26 29 8 t Lsun/nio/fs/WindowsPath;
Exception table:
from to target type
1 3 7 Class sun.nio.fs.WindowsException
4 6 7 Class sun.nio.fs.WindowsException
14 18 19 Class sun.nio.fs.WindowsException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
followLinks
static java.lang.String getRealPath(sun.nio.fs.WindowsPath, boolean);
descriptor: (Lsun/nio/fs/WindowsPath;Z)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.fs.WindowsPath.getFileSystem:()Lsun/nio/fs/WindowsFileSystem;
astore 2
start local 2 1: iload 1
ifeq 3
aload 2
invokevirtual sun.nio.fs.WindowsFileSystem.supportsLinks:()Z
ifne 3
2: iconst_0
istore 1
3: StackMap locals: sun.nio.fs.WindowsFileSystem
StackMap stack:
aconst_null
astore 3
start local 3 4: aload 0
invokevirtual sun.nio.fs.WindowsPath.toAbsolutePath:()Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
astore 3
5: goto 8
StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String
StackMap stack: java.io.IOError
6: astore 4
start local 4 7: aload 4
invokevirtual java.io.IOError.getCause:()Ljava/lang/Throwable;
checkcast java.io.IOException
athrow
end local 4 8: StackMap locals:
StackMap stack:
aload 3
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
iflt 13
9: aload 3
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetFullPathName:(Ljava/lang/String;)Ljava/lang/String;
astore 3
10: goto 13
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
11: astore 4
start local 4 12: aload 4
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 4 13: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.lang.String.length:()I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 14: aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 15: aload 3
iconst_1
invokevirtual java.lang.String.charAt:(I)C
istore 7
start local 7 16: iload 6
bipush 122
if_icmpgt 17
iload 6
bipush 97
if_icmpge 18
StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String java.lang.StringBuilder top int int
StackMap stack:
17: iload 6
bipush 90
if_icmpgt 23
iload 6
bipush 65
if_icmplt 23
18: StackMap locals:
StackMap stack:
iload 7
bipush 58
if_icmpne 23
aload 3
iconst_2
invokevirtual java.lang.String.charAt:(I)C
bipush 92
if_icmpne 23
19: aload 4
iload 6
invokestatic java.lang.Character.toUpperCase:(C)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
20: aload 4
ldc ":\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: iconst_3
istore 5
start local 5 22: goto 39
end local 5 StackMap locals:
StackMap stack:
23: iload 6
bipush 92
if_icmpne 38
iload 7
bipush 92
if_icmpne 38
24: aload 3
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 8
start local 8 25: aload 3
bipush 92
iconst_2
invokevirtual java.lang.String.indexOf:(II)I
istore 9
start local 9 26: iload 9
iconst_m1
if_icmpeq 27
iload 9
iload 8
if_icmpne 30
27: StackMap locals: int int
StackMap stack:
new java.nio.file.FileSystemException
dup
aload 0
invokevirtual sun.nio.fs.WindowsPath.getPathForExceptionMessage:()Ljava/lang/String;
28: aconst_null
ldc "UNC has invalid share"
29: invokespecial java.nio.file.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 3
bipush 92
iload 9
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
istore 9
31: iload 9
ifge 35
32: iload 8
istore 9
33: aload 4
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
34: goto 36
35: StackMap locals:
StackMap stack:
aload 4
aload 3
iconst_0
iload 9
iconst_1
iadd
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
36: StackMap locals:
StackMap stack:
iload 9
iconst_1
iadd
istore 5
end local 9 end local 8 start local 5 37: goto 39
end local 5 38: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "path type not recognized"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
start local 5 39: StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String java.lang.StringBuilder int int int
StackMap stack:
iload 5
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 46
40: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 41: aload 8
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetFileAttributes:(Ljava/lang/String;)I
pop
42: goto 45
StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String java.lang.StringBuilder int int int java.lang.String
StackMap stack: sun.nio.fs.WindowsException
43: astore 9
start local 9 44: aload 9
aload 3
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Ljava/lang/String;)V
end local 9 45: StackMap locals:
StackMap stack:
aload 8
areturn
end local 8 46: StackMap locals:
StackMap stack:
iload 5
istore 8
start local 8 47: goto 71
48: StackMap locals: int
StackMap stack:
aload 3
bipush 92
iload 8
invokevirtual java.lang.String.indexOf:(II)I
istore 9
start local 9 49: iload 9
iconst_m1
if_icmpne 50
aload 3
invokevirtual java.lang.String.length:()I
goto 51
StackMap locals: int
StackMap stack:
50: iload 9
StackMap locals:
StackMap stack: int
51: istore 10
start local 10 52: new java.lang.StringBuilder
dup
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
iload 8
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 11
start local 11 53: aload 11
invokestatic sun.nio.fs.WindowsPath.addPrefixIfNeeded:(Ljava/lang/String;)Ljava/lang/String;
invokestatic sun.nio.fs.WindowsNativeDispatcher.FindFirstFile:(Ljava/lang/String;)Lsun/nio/fs/WindowsNativeDispatcher$FirstFile;
astore 12
start local 12 54: aload 12
invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.handle:()J
invokestatic sun.nio.fs.WindowsNativeDispatcher.FindClose:(J)V
55: iload 1
ifeq 64
56: aload 12
invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.attributes:()I
invokestatic sun.nio.fs.WindowsFileAttributes.isReparsePoint:(I)Z
ifeq 64
57: aload 0
invokestatic sun.nio.fs.WindowsLinkSupport.getFinalPath:(Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
astore 13
start local 13 58: aload 13
ifnonnull 62
59: aload 2
aload 3
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
60: invokestatic sun.nio.fs.WindowsLinkSupport.resolveAllLinks:(Lsun/nio/fs/WindowsPath;)Lsun/nio/fs/WindowsPath;
astore 14
start local 14 61: aload 14
iconst_0
invokestatic sun.nio.fs.WindowsLinkSupport.getRealPath:(Lsun/nio/fs/WindowsPath;Z)Ljava/lang/String;
astore 13
end local 14 62: StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String java.lang.StringBuilder int int int int int int java.lang.String sun.nio.fs.WindowsNativeDispatcher$FirstFile java.lang.String
StackMap stack:
aload 13
63: areturn
end local 13 64: StackMap locals:
StackMap stack:
aload 4
aload 12
invokevirtual sun.nio.fs.WindowsNativeDispatcher$FirstFile.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
65: iload 9
iconst_m1
if_icmpeq 70
66: aload 4
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 12 67: goto 70
StackMap locals: sun.nio.fs.WindowsPath int sun.nio.fs.WindowsFileSystem java.lang.String java.lang.StringBuilder int int int int int int java.lang.String
StackMap stack: sun.nio.fs.WindowsException
68: astore 12
start local 12 69: aload 12
aload 3
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Ljava/lang/String;)V
end local 12 70: StackMap locals:
StackMap stack:
iload 10
iconst_1
iadd
istore 8
end local 11 end local 10 end local 9 71: StackMap locals:
StackMap stack:
iload 8
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 48
72: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 input Lsun/nio/fs/WindowsPath;
0 73 1 resolveLinks Z
1 73 2 fs Lsun/nio/fs/WindowsFileSystem;
4 73 3 path Ljava/lang/String;
7 8 4 x Ljava/io/IOError;
12 13 4 x Lsun/nio/fs/WindowsException;
14 73 4 sb Ljava/lang/StringBuilder;
22 23 5 start I
37 38 5 start I
39 73 5 start I
15 73 6 c0 C
16 73 7 c1 C
25 37 8 last I
26 37 9 pos I
41 46 8 result Ljava/lang/String;
44 45 9 x Lsun/nio/fs/WindowsException;
47 73 8 curr I
49 71 9 next I
52 71 10 end I
53 71 11 search Ljava/lang/String;
54 67 12 fileData Lsun/nio/fs/WindowsNativeDispatcher$FirstFile;
58 64 13 result Ljava/lang/String;
61 62 14 resolved Lsun/nio/fs/WindowsPath;
69 70 12 e Lsun/nio/fs/WindowsException;
Exception table:
from to target type
4 5 6 Class java.io.IOError
9 10 11 Class sun.nio.fs.WindowsException
41 42 43 Class sun.nio.fs.WindowsException
53 63 68 Class sun.nio.fs.WindowsException
64 67 68 Class sun.nio.fs.WindowsException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
resolveLinks
private static java.lang.String readLinkImpl(long);
descriptor: (J)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=11, args_size=1
start local 0 0: sipush 16384
istore 2
start local 2 1: iload 2
invokestatic sun.nio.fs.NativeBuffers.getNativeBuffer:(I)Lsun/nio/fs/NativeBuffer;
astore 3
start local 3 2: lload 0
aload 3
invokevirtual sun.nio.fs.NativeBuffer.address:()J
iload 2
invokestatic sun.nio.fs.WindowsNativeDispatcher.DeviceIoControlGetReparsePoint:(JJI)V
3: goto 8
StackMap locals: long int sun.nio.fs.NativeBuffer
StackMap stack: sun.nio.fs.WindowsException
4: astore 4
start local 4 5: aload 4
invokevirtual sun.nio.fs.WindowsException.lastError:()I
sipush 4390
if_icmpne 7
6: new java.nio.file.NotLinkException
dup
aconst_null
aconst_null
aload 4
invokevirtual sun.nio.fs.WindowsException.errorString:()Ljava/lang/String;
invokespecial java.nio.file.NotLinkException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
7: StackMap locals: sun.nio.fs.WindowsException
StackMap stack:
aload 4
aconst_null
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Ljava/lang/String;)V
end local 4 8: StackMap locals:
StackMap stack:
getstatic sun.nio.fs.WindowsLinkSupport.unsafe:Lsun/misc/Unsafe;
aload 3
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lconst_0
ladd
invokevirtual sun.misc.Unsafe.getLong:(J)J
l2i
istore 4
start local 4 9: iload 4
ldc -1610612724
if_icmpeq 11
10: new java.nio.file.NotLinkException
dup
aconst_null
aconst_null
ldc "Reparse point is not a symbolic link"
invokespecial java.nio.file.NotLinkException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
11: StackMap locals: int
StackMap stack:
getstatic sun.nio.fs.WindowsLinkSupport.unsafe:Lsun/misc/Unsafe;
aload 3
invokevirtual sun.nio.fs.NativeBuffer.address:()J
ldc 8
ladd
invokevirtual sun.misc.Unsafe.getShort:(J)S
istore 5
start local 5 12: getstatic sun.nio.fs.WindowsLinkSupport.unsafe:Lsun/misc/Unsafe;
aload 3
invokevirtual sun.nio.fs.NativeBuffer.address:()J
ldc 10
ladd
invokevirtual sun.misc.Unsafe.getShort:(J)S
istore 6
start local 6 13: iload 6
iconst_2
irem
ifeq 15
14: new java.nio.file.FileSystemException
dup
aconst_null
aconst_null
ldc "Symbolic link corrupted"
invokespecial java.nio.file.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
athrow
15: StackMap locals: int int
StackMap stack:
iload 6
iconst_2
idiv
newarray 5
astore 7
start local 7 16: getstatic sun.nio.fs.WindowsLinkSupport.unsafe:Lsun/misc/Unsafe;
aconst_null
aload 3
invokevirtual sun.nio.fs.NativeBuffer.address:()J
ldc 20
ladd
iload 5
i2l
ladd
17: aload 7
getstatic sun.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
i2l
iload 6
i2l
18: invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
19: new java.lang.String
dup
aload 7
invokespecial java.lang.String.<init>:([C)V
invokestatic sun.nio.fs.WindowsLinkSupport.stripPrefix:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 20: aload 8
invokevirtual java.lang.String.length:()I
ifne 22
21: new java.io.IOException
dup
ldc "Symbolic link target is invalid"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: char[] java.lang.String
StackMap stack:
aload 8
astore 10
23: aload 3
invokevirtual sun.nio.fs.NativeBuffer.release:()V
24: aload 10
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 25: StackMap locals: long int sun.nio.fs.NativeBuffer
StackMap stack: java.lang.Throwable
astore 9
26: aload 3
invokevirtual sun.nio.fs.NativeBuffer.release:()V
27: aload 9
athrow
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 handle J
1 28 2 size I
2 28 3 buffer Lsun/nio/fs/NativeBuffer;
5 8 4 x Lsun/nio/fs/WindowsException;
9 25 4 tag I
12 25 5 nameOffset S
13 25 6 nameLengthInBytes S
16 25 7 name [C
20 25 8 target Ljava/lang/String;
Exception table:
from to target type
2 3 4 Class sun.nio.fs.WindowsException
2 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handle
private static sun.nio.fs.WindowsPath resolveAllLinks(sun.nio.fs.WindowsPath);
descriptor: (Lsun/nio/fs/WindowsPath;)Lsun/nio/fs/WindowsPath;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=1
start local 0 0: getstatic sun.nio.fs.WindowsLinkSupport.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.fs.WindowsPath.isAbsolute:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.fs.WindowsPath.getFileSystem:()Lsun/nio/fs/WindowsFileSystem;
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 33
5: StackMap locals: sun.nio.fs.WindowsFileSystem int int
StackMap stack:
aload 0
invokevirtual sun.nio.fs.WindowsPath.getRoot:()Lsun/nio/fs/WindowsPath;
aload 0
iconst_0
iload 3
iconst_1
iadd
invokevirtual sun.nio.fs.WindowsPath.subpath:(II)Lsun/nio/fs/WindowsPath;
invokevirtual sun.nio.fs.WindowsPath.resolve:(Ljava/nio/file/Path;)Lsun/nio/fs/WindowsPath;
astore 4
start local 4 6: aconst_null
astore 5
start local 5 7: aload 4
iconst_0
invokestatic sun.nio.fs.WindowsFileAttributes.get:(Lsun/nio/fs/WindowsPath;Z)Lsun/nio/fs/WindowsFileAttributes;
astore 5
8: goto 11
StackMap locals: sun.nio.fs.WindowsPath sun.nio.fs.WindowsFileSystem int int sun.nio.fs.WindowsPath sun.nio.fs.WindowsFileAttributes
StackMap stack: sun.nio.fs.WindowsException
9: astore 6
start local 6 10: aload 6
aload 4
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 6 11: StackMap locals:
StackMap stack:
aload 5
invokevirtual sun.nio.fs.WindowsFileAttributes.isSymbolicLink:()Z
ifeq 32
12: iinc 2 1
13: iload 2
bipush 32
if_icmple 15
14: new java.io.IOException
dup
ldc "Too many links"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 1
aload 4
invokestatic sun.nio.fs.WindowsLinkSupport.readLink:(Lsun/nio/fs/WindowsPath;)Ljava/lang/String;
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
16: astore 6
start local 6 17: aconst_null
astore 7
start local 7 18: aload 0
invokevirtual sun.nio.fs.WindowsPath.getNameCount:()I
istore 8
start local 8 19: iload 3
iconst_1
iadd
iload 8
if_icmpge 21
20: aload 0
iload 3
iconst_1
iadd
iload 8
invokevirtual sun.nio.fs.WindowsPath.subpath:(II)Lsun/nio/fs/WindowsPath;
astore 7
21: StackMap locals: sun.nio.fs.WindowsPath sun.nio.fs.WindowsPath int
StackMap stack:
aload 4
invokevirtual sun.nio.fs.WindowsPath.getParent:()Lsun/nio/fs/WindowsPath;
aload 6
invokevirtual sun.nio.fs.WindowsPath.resolve:(Ljava/nio/file/Path;)Lsun/nio/fs/WindowsPath;
astore 0
22: aload 0
invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetFullPathName:(Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 23: aload 9
aload 0
invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
24: aload 1
aload 9
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
astore 0
end local 9 25: goto 28
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
26: astore 9
start local 9 27: aload 9
aload 0
invokevirtual sun.nio.fs.WindowsException.rethrowAsIOException:(Lsun/nio/fs/WindowsPath;)V
end local 9 28: StackMap locals:
StackMap stack:
aload 7
ifnull 30
29: aload 0
aload 7
invokevirtual sun.nio.fs.WindowsPath.resolve:(Ljava/nio/file/Path;)Lsun/nio/fs/WindowsPath;
astore 0
30: StackMap locals:
StackMap stack:
iconst_0
istore 3
end local 8 end local 7 end local 6 31: goto 33
32: StackMap locals:
StackMap stack:
iinc 3 1
end local 5 end local 4 33: StackMap locals:
StackMap stack:
iload 3
aload 0
invokevirtual sun.nio.fs.WindowsPath.getNameCount:()I
if_icmplt 5
34: aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 path Lsun/nio/fs/WindowsPath;
2 35 1 fs Lsun/nio/fs/WindowsFileSystem;
3 35 2 linkCount I
4 35 3 elem I
6 33 4 current Lsun/nio/fs/WindowsPath;
7 33 5 attrs Lsun/nio/fs/WindowsFileAttributes;
10 11 6 x Lsun/nio/fs/WindowsException;
17 31 6 target Lsun/nio/fs/WindowsPath;
18 31 7 remainder Lsun/nio/fs/WindowsPath;
19 31 8 count I
23 25 9 full Ljava/lang/String;
27 28 9 x Lsun/nio/fs/WindowsException;
Exception table:
from to target type
7 8 9 Class sun.nio.fs.WindowsException
22 25 26 Class sun.nio.fs.WindowsException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
private static java.lang.String stripPrefix(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "\\\\?\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 6
1: aload 0
ldc "\\\\?\\UNC\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
2: new java.lang.StringBuilder
dup
ldc "\\"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
bipush 7
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
iconst_4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
5: StackMap locals:
StackMap stack:
aload 0
areturn
6: StackMap locals:
StackMap stack:
aload 0
ldc "\\??\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
7: aload 0
ldc "\\??\\UNC\\"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
8: new java.lang.StringBuilder
dup
ldc "\\"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
bipush 7
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
iconst_4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
11: StackMap locals:
StackMap stack:
aload 0
areturn
12: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 path Ljava/lang/String;
MethodParameters:
Name Flags
path
}
SourceFile: "WindowsLinkSupport.java"
NestMembers:
sun.nio.fs.WindowsLinkSupport$1
InnerClasses:
sun.nio.fs.WindowsLinkSupport$1
FirstFile = sun.nio.fs.WindowsNativeDispatcher$FirstFile of sun.nio.fs.WindowsNativeDispatcher