class java.io.File$TempDirectory
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.io.File$TempDirectory
super_class: java.lang.Object
{
private static final java.io.File tmpdir;
descriptor: Ljava/io/File;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.io.File
dup
1: ldc "java.io.tmpdir"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
2: invokespecial java.io.File.<init>:(Ljava/lang/String;)V
putstatic java.io.File$TempDirectory.tmpdir:Ljava/io/File;
3: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putstatic java.io.File$TempDirectory.random:Ljava/security/SecureRandom;
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
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/File$TempDirectory;
static java.io.File location();
descriptor: ()Ljava/io/File;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic java.io.File$TempDirectory.tmpdir:Ljava/io/File;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static int shortenSubName(int, int, int);
descriptor: (III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
iload 0
iload 1
isub
invokestatic java.lang.Math.max:(II)I
istore 3
start local 3 1: iload 3
iload 0
if_icmpge 3
2: iload 3
ireturn
3: StackMap locals: int
StackMap stack:
iload 0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 subNameLength I
0 4 1 excess I
0 4 2 nameMin I
1 4 3 newLength I
MethodParameters:
Name Flags
subNameLength
excess
nameMin
static java.io.File generateFile(java.lang.String, java.lang.String, java.io.File);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.io.File$TempDirectory.random:Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextLong:()J
lstore 3
start local 3 1: lload 3
invokestatic java.lang.Long.toUnsignedString:(J)Ljava/lang/String;
astore 5
start local 5 2: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getName:()Ljava/lang/String;
astore 0
3: aload 0
invokevirtual java.lang.String.length:()I
istore 6
start local 6 4: aload 5
invokevirtual java.lang.String.length:()I
istore 7
start local 7 5: aload 1
invokevirtual java.lang.String.length:()I
istore 8
start local 8 6: getstatic java.io.File.fs:Ljava/io/FileSystem;
aload 2
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokevirtual java.io.FileSystem.getNameMax:(Ljava/lang/String;)I
istore 10
start local 10 7: iload 6
iload 7
iadd
iload 8
iadd
iload 10
isub
istore 11
start local 11 8: iload 11
ifgt 11
9: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 9
start local 9 10: goto 37
end local 9 11: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int
StackMap stack:
iload 6
iload 11
iconst_3
invokestatic java.io.File$TempDirectory.shortenSubName:(III)I
istore 6
12: iload 6
iload 7
iadd
iload 8
iadd
iload 10
isub
istore 11
13: iload 11
ifle 20
14: iload 8
iload 11
15: aload 1
ldc "."
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
ifne 16
iconst_4
goto 17
StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int
StackMap stack: int int
16: iconst_0
17: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int
StackMap stack: int int int
invokestatic java.io.File$TempDirectory.shortenSubName:(III)I
istore 8
18: iload 8
iload 11
iconst_3
invokestatic java.io.File$TempDirectory.shortenSubName:(III)I
istore 8
19: iload 6
iload 7
iadd
iload 8
iadd
iload 10
isub
istore 11
20: StackMap locals:
StackMap stack:
iload 11
ifle 22
iload 11
iload 7
iconst_5
isub
if_icmpgt 22
21: iload 7
iload 11
iconst_5
invokestatic java.io.File$TempDirectory.shortenSubName:(III)I
istore 7
22: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
iload 6
iload 7
iadd
iload 8
iadd
invokespecial java.lang.StringBuilder.<init>:(I)V
23: astore 12
start local 12 24: aload 12
iload 6
aload 0
invokevirtual java.lang.String.length:()I
if_icmpge 26
25: aload 0
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 27
StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder
26: aload 0
27: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 12
iload 7
aload 5
invokevirtual java.lang.String.length:()I
if_icmpge 30
29: aload 5
iconst_0
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 31
StackMap locals:
StackMap stack: java.lang.StringBuilder
30: aload 5
31: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: aload 12
iload 8
aload 1
invokevirtual java.lang.String.length:()I
if_icmpge 34
33: aload 1
iconst_0
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 35
StackMap locals:
StackMap stack: java.lang.StringBuilder
34: aload 1
35: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int top int int java.lang.StringBuilder
StackMap stack: java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
36: aload 12
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 9
end local 12 start local 9 37: StackMap locals: java.lang.String java.lang.String java.io.File long java.lang.String int int int java.lang.String int int
StackMap stack:
getstatic java.io.File.fs:Ljava/io/FileSystem;
aload 9
invokevirtual java.io.FileSystem.normalize:(Ljava/lang/String;)Ljava/lang/String;
astore 9
38: new java.io.File
dup
aload 2
aload 9
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 12
start local 12 39: aload 9
aload 12
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 40
aload 12
invokevirtual java.io.File.isInvalid:()Z
ifeq 45
40: StackMap locals: java.io.File
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 42
41: new java.io.IOException
dup
ldc "Unable to create temporary file"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Unable to create temporary file, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
43: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals:
StackMap stack:
aload 12
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 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 46 0 prefix Ljava/lang/String;
0 46 1 suffix Ljava/lang/String;
0 46 2 dir Ljava/io/File;
1 46 3 n J
2 46 5 nus Ljava/lang/String;
4 46 6 prefixLength I
5 46 7 nusLength I
6 46 8 suffixLength I
10 11 9 name Ljava/lang/String;
37 46 9 name Ljava/lang/String;
7 46 10 nameMax I
8 46 11 excess I
24 37 12 sb Ljava/lang/StringBuilder;
39 46 12 f Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
prefix
suffix
dir
}
SourceFile: "File.java"
NestHost: java.io.File
InnerClasses:
private TempDirectory = java.io.File$TempDirectory of java.io.File