public class java.util.logging.FileHandler extends java.util.logging.StreamHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.util.logging.FileHandler
super_class: java.util.logging.StreamHandler
{
private java.util.logging.FileHandler$MeteredStream meter;
descriptor: Ljava/util/logging/FileHandler$MeteredStream;
flags: (0x0002) ACC_PRIVATE
private boolean append;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int limit;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int count;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String pattern;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String lockFileName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.FileChannel lockFileChannel;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0002) ACC_PRIVATE
private java.io.File[] files;
descriptor: [Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private static final int DEFAULT_MAX_LOCKS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private static int maxLocks;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Set<java.lang.String> locks;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
1: invokedynamic run()Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
java/util/logging/FileHandler.lambda$0()Ljava/lang/Integer; (6)
()Ljava/lang/Integer;
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putstatic java.util.logging.FileHandler.maxLocks:I
3: getstatic java.util.logging.FileHandler.maxLocks:I
ifgt 5
4: bipush 100
putstatic java.util.logging.FileHandler.maxLocks:I
5: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
private void open(java.io.File, boolean);
descriptor: (Ljava/io/File;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 2
ifeq 3
2: aload 1
invokevirtual java.io.File.length:()J
l2i
istore 3
3: StackMap locals: int
StackMap stack:
new java.io.FileOutputStream
dup
aload 1
invokevirtual java.io.File.toString:()Ljava/lang/String;
iload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;Z)V
astore 4
start local 4 4: new java.io.BufferedOutputStream
dup
aload 4
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 5
start local 5 5: aload 0
new java.util.logging.FileHandler$MeteredStream
dup
aload 0
aload 5
iload 3
invokespecial java.util.logging.FileHandler$MeteredStream.<init>:(Ljava/util/logging/FileHandler;Ljava/io/OutputStream;I)V
putfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
6: aload 0
aload 0
getfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
invokevirtual java.util.logging.FileHandler.setOutputStream:(Ljava/io/OutputStream;)V
7: return
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 8 0 this Ljava/util/logging/FileHandler;
0 8 1 fname Ljava/io/File;
0 8 2 append Z
1 8 3 len I
4 8 4 fout Ljava/io/FileOutputStream;
5 8 5 bout Ljava/io/BufferedOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fname
append
private void configure();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
astore 1
start local 1 1: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
start local 2 2: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".pattern"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "%h/java%u.log"
invokevirtual java.util.logging.LogManager.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
3: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".limit"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
invokevirtual java.util.logging.LogManager.getIntProperty:(Ljava/lang/String;I)I
putfield java.util.logging.FileHandler.limit:I
4: aload 0
getfield java.util.logging.FileHandler.limit:I
ifge 6
5: aload 0
iconst_0
putfield java.util.logging.FileHandler.limit:I
6: StackMap locals: java.util.logging.LogManager java.lang.String
StackMap stack:
aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".count"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
invokevirtual java.util.logging.LogManager.getIntProperty:(Ljava/lang/String;I)I
putfield java.util.logging.FileHandler.count:I
7: aload 0
getfield java.util.logging.FileHandler.count:I
ifgt 9
8: aload 0
iconst_1
putfield java.util.logging.FileHandler.count:I
9: StackMap locals:
StackMap stack:
aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".append"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
invokevirtual java.util.logging.LogManager.getBooleanProperty:(Ljava/lang/String;Z)Z
putfield java.util.logging.FileHandler.append:Z
10: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".level"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.util.logging.Level.ALL:Ljava/util/logging/Level;
invokevirtual java.util.logging.LogManager.getLevelProperty:(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
11: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".filter"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
invokevirtual java.util.logging.LogManager.getFilterProperty:(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
invokevirtual java.util.logging.FileHandler.setFilter:(Ljava/util/logging/Filter;)V
12: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".formatter"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
new java.util.logging.XMLFormatter
dup
invokespecial java.util.logging.XMLFormatter.<init>:()V
invokevirtual java.util.logging.LogManager.getFormatterProperty:(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter;
invokevirtual java.util.logging.FileHandler.setFormatter:(Ljava/util/logging/Formatter;)V
13: aload 0
aload 1
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".encoding"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
invokevirtual java.util.logging.LogManager.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.logging.FileHandler.setEncoding:(Ljava/lang/String;)V
14: goto 19
StackMap locals:
StackMap stack: java.lang.Exception
15: pop
16: aload 0
aconst_null
invokevirtual java.util.logging.FileHandler.setEncoding:(Ljava/lang/String;)V
17: goto 19
StackMap locals:
StackMap stack: java.lang.Exception
18: pop
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/util/logging/FileHandler;
1 20 1 manager Ljava/util/logging/LogManager;
2 20 2 cname Ljava/lang/String;
Exception table:
from to target type
13 14 15 Class java.lang.Exception
16 17 18 Class java.lang.Exception
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.util.logging.StreamHandler.<init>:()V
1: aload 0
invokevirtual java.util.logging.FileHandler.checkPermission:()V
2: aload 0
invokevirtual java.util.logging.FileHandler.configure:()V
3: aload 0
invokevirtual java.util.logging.FileHandler.openFiles:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/logging/FileHandler;
Exceptions:
throws java.io.IOException, java.lang.SecurityException
public void <init>(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
invokespecial java.util.logging.StreamHandler.<init>:()V
1: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 3
2: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals: java.util.logging.FileHandler java.lang.String
StackMap stack:
aload 0
invokevirtual java.util.logging.FileHandler.checkPermission:()V
4: aload 0
invokevirtual java.util.logging.FileHandler.configure:()V
5: aload 0
aload 1
putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
6: aload 0
iconst_0
putfield java.util.logging.FileHandler.limit:I
7: aload 0
iconst_1
putfield java.util.logging.FileHandler.count:I
8: aload 0
invokevirtual java.util.logging.FileHandler.openFiles:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/logging/FileHandler;
0 10 1 pattern Ljava/lang/String;
Exceptions:
throws java.io.IOException, java.lang.SecurityException
MethodParameters:
Name Flags
pattern
public void <init>(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.util.logging.StreamHandler.<init>:()V
1: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 3
2: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals: java.util.logging.FileHandler java.lang.String int
StackMap stack:
aload 0
invokevirtual java.util.logging.FileHandler.checkPermission:()V
4: aload 0
invokevirtual java.util.logging.FileHandler.configure:()V
5: aload 0
aload 1
putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
6: aload 0
iconst_0
putfield java.util.logging.FileHandler.limit:I
7: aload 0
iconst_1
putfield java.util.logging.FileHandler.count:I
8: aload 0
iload 2
putfield java.util.logging.FileHandler.append:Z
9: aload 0
invokevirtual java.util.logging.FileHandler.openFiles:()V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/logging/FileHandler;
0 11 1 pattern Ljava/lang/String;
0 11 2 append Z
Exceptions:
throws java.io.IOException, java.lang.SecurityException
MethodParameters:
Name Flags
pattern
append
public void <init>(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.util.logging.StreamHandler.<init>:()V
1: iload 2
iflt 2
iload 3
iconst_1
if_icmplt 2
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 3
2: StackMap locals: java.util.logging.FileHandler java.lang.String int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.logging.FileHandler.checkPermission:()V
4: aload 0
invokevirtual java.util.logging.FileHandler.configure:()V
5: aload 0
aload 1
putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
6: aload 0
iload 2
putfield java.util.logging.FileHandler.limit:I
7: aload 0
iload 3
putfield java.util.logging.FileHandler.count:I
8: aload 0
invokevirtual java.util.logging.FileHandler.openFiles:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/logging/FileHandler;
0 10 1 pattern Ljava/lang/String;
0 10 2 limit I
0 10 3 count I
Exceptions:
throws java.io.IOException, java.lang.SecurityException
MethodParameters:
Name Flags
pattern
limit
count
public void <init>(java.lang.String, int, int, boolean);
descriptor: (Ljava/lang/String;IIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.util.logging.StreamHandler.<init>:()V
1: iload 2
iflt 2
iload 3
iconst_1
if_icmplt 2
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpge 3
2: StackMap locals: java.util.logging.FileHandler java.lang.String int int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.logging.FileHandler.checkPermission:()V
4: aload 0
invokevirtual java.util.logging.FileHandler.configure:()V
5: aload 0
aload 1
putfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
6: aload 0
iload 2
putfield java.util.logging.FileHandler.limit:I
7: aload 0
iload 3
putfield java.util.logging.FileHandler.count:I
8: aload 0
iload 4
putfield java.util.logging.FileHandler.append:Z
9: aload 0
invokevirtual java.util.logging.FileHandler.openFiles:()V
10: return
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 Ljava/util/logging/FileHandler;
0 11 1 pattern Ljava/lang/String;
0 11 2 limit I
0 11 3 count I
0 11 4 append Z
Exceptions:
throws java.io.IOException, java.lang.SecurityException
MethodParameters:
Name Flags
pattern
limit
count
append
private boolean isParentWritable(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 1
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
astore 2
3: StackMap locals: java.nio.file.Path
StackMap stack:
aload 2
ifnull 4
aload 2
invokestatic java.nio.file.Files.isWritable:(Ljava/nio/file/Path;)Z
ifeq 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/logging/FileHandler;
0 5 1 path Ljava/nio/file/Path;
1 5 2 parent Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private void openFiles();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=1
start local 0 0: invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
astore 1
start local 1 1: aload 1
invokevirtual java.util.logging.LogManager.checkPermission:()V
2: aload 0
getfield java.util.logging.FileHandler.count:I
iconst_1
if_icmpge 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "file count = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.util.logging.FileHandler.count:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.util.logging.LogManager
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.limit:I
ifge 6
5: aload 0
iconst_0
putfield java.util.logging.FileHandler.limit:I
6: StackMap locals:
StackMap stack:
new java.util.logging.FileHandler$InitializationErrorManager
dup
invokespecial java.util.logging.FileHandler$InitializationErrorManager.<init>:()V
astore 2
start local 2 7: aload 0
aload 2
invokevirtual java.util.logging.FileHandler.setErrorManager:(Ljava/util/logging/ErrorManager;)V
8: iconst_m1
istore 3
start local 3 9: StackMap locals: java.util.logging.FileHandler$InitializationErrorManager int
StackMap stack:
iinc 3 1
10: iload 3
getstatic java.util.logging.FileHandler.maxLocks:I
if_icmple 14
11: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Couldn't get lock for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc ", maxLocks: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic java.util.logging.FileHandler.maxLocks:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 0
aload 0
getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
iconst_0
iload 3
invokevirtual java.util.logging.FileHandler.generate:(Ljava/lang/String;II)Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".lck"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
15: getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
dup
astore 4
monitorenter
16: getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 19
17: aload 4
monitorexit
18: goto 9
19: StackMap locals: java.util.Set
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 5
start local 5 20: aconst_null
astore 6
start local 6 21: iconst_m1
istore 7
start local 7 22: iconst_0
istore 8
start local 8 23: goto 40
24: StackMap locals: java.util.logging.FileHandler java.util.logging.LogManager java.util.logging.FileHandler$InitializationErrorManager int java.util.Set java.nio.file.Path java.nio.channels.FileChannel int int
StackMap stack:
aload 5
iconst_2
anewarray java.nio.file.OpenOption
dup
iconst_0
25: getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
aastore
26: invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
astore 6
27: iconst_1
istore 8
28: goto 40
StackMap locals:
StackMap stack: java.nio.file.FileAlreadyExistsException
29: pop
30: aload 5
iconst_1
anewarray java.nio.file.LinkOption
dup
iconst_0
getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
aastore
invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 41
31: aload 0
aload 5
invokevirtual java.util.logging.FileHandler.isParentWritable:(Ljava/nio/file/Path;)Z
ifeq 41
32: aload 5
iconst_2
anewarray java.nio.file.OpenOption
dup
iconst_0
33: getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardOpenOption.APPEND:Ljava/nio/file/StandardOpenOption;
aastore
34: invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
astore 6
35: goto 40
StackMap locals:
StackMap stack: java.nio.file.NoSuchFileException
36: pop
37: goto 40
38: StackMap locals:
StackMap stack: java.io.IOException
pop
39: goto 41
40: StackMap locals:
StackMap stack:
aload 6
ifnonnull 41
iload 7
iinc 7 1
iconst_1
if_icmplt 24
41: StackMap locals:
StackMap stack:
aload 6
ifnonnull 43
aload 4
monitorexit
42: goto 9
43: StackMap locals:
StackMap stack:
aload 0
aload 6
putfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
44: aload 0
getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.tryLock:()Ljava/nio/channels/FileLock;
ifnull 45
iconst_1
goto 46
StackMap locals:
StackMap stack:
45: iconst_0
StackMap locals:
StackMap stack: int
46: istore 9
start local 9 47: goto 53
end local 9 StackMap locals:
StackMap stack: java.io.IOException
48: pop
49: iload 8
istore 9
start local 9 50: goto 53
end local 9 51: StackMap locals:
StackMap stack: java.nio.channels.OverlappingFileLockException
pop
52: iconst_0
istore 9
start local 9 53: StackMap locals: int
StackMap stack:
iload 9
ifeq 57
54: getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
55: aload 4
monitorexit
56: goto 62
57: StackMap locals:
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
end local 9 end local 8 end local 7 end local 6 end local 5 58: aload 4
monitorexit
59: goto 9
StackMap locals: java.util.logging.FileHandler java.util.logging.LogManager java.util.logging.FileHandler$InitializationErrorManager int java.util.Set
StackMap stack: java.lang.Throwable
60: aload 4
monitorexit
61: athrow
62: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.util.logging.FileHandler.count:I
anewarray java.io.File
putfield java.util.logging.FileHandler.files:[Ljava/io/File;
63: iconst_0
istore 4
start local 4 64: goto 67
65: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.files:[Ljava/io/File;
iload 4
aload 0
aload 0
getfield java.util.logging.FileHandler.pattern:Ljava/lang/String;
iload 4
iload 3
invokevirtual java.util.logging.FileHandler.generate:(Ljava/lang/String;II)Ljava/io/File;
aastore
66: iinc 4 1
StackMap locals:
StackMap stack:
67: iload 4
aload 0
getfield java.util.logging.FileHandler.count:I
if_icmplt 65
end local 4 68: aload 0
getfield java.util.logging.FileHandler.append:Z
ifeq 71
69: aload 0
aload 0
getfield java.util.logging.FileHandler.files:[Ljava/io/File;
iconst_0
aaload
iconst_1
invokevirtual java.util.logging.FileHandler.open:(Ljava/io/File;Z)V
70: goto 72
71: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.logging.FileHandler.rotate:()V
72: StackMap locals:
StackMap stack:
aload 2
getfield java.util.logging.FileHandler$InitializationErrorManager.lastException:Ljava/lang/Exception;
astore 4
start local 4 73: aload 4
ifnull 79
74: aload 4
instanceof java.io.IOException
ifeq 76
75: aload 4
checkcast java.io.IOException
athrow
76: StackMap locals: java.lang.Exception
StackMap stack:
aload 4
instanceof java.lang.SecurityException
ifeq 78
77: aload 4
checkcast java.lang.SecurityException
athrow
78: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
79: StackMap locals:
StackMap stack:
aload 0
new java.util.logging.ErrorManager
dup
invokespecial java.util.logging.ErrorManager.<init>:()V
invokevirtual java.util.logging.FileHandler.setErrorManager:(Ljava/util/logging/ErrorManager;)V
80: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 81 0 this Ljava/util/logging/FileHandler;
1 81 1 manager Ljava/util/logging/LogManager;
7 81 2 em Ljava/util/logging/FileHandler$InitializationErrorManager;
9 81 3 unique I
20 58 5 lockFilePath Ljava/nio/file/Path;
21 58 6 channel Ljava/nio/channels/FileChannel;
22 58 7 retries I
23 58 8 fileCreated Z
47 48 9 available Z
50 51 9 available Z
53 58 9 available Z
64 68 4 i I
73 81 4 ex Ljava/lang/Exception;
Exception table:
from to target type
24 28 29 Class java.nio.file.FileAlreadyExistsException
32 35 36 Class java.nio.file.NoSuchFileException
32 35 38 Class java.io.IOException
44 47 48 Class java.io.IOException
44 47 51 Class java.nio.channels.OverlappingFileLockException
16 18 60 any
19 42 60 any
43 56 60 any
57 59 60 any
60 61 60 any
Exceptions:
throws java.io.IOException
private java.io.File generate(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: ldc ""
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: iconst_0
istore 7
start local 7 4: iconst_0
istore 8
start local 8 5: goto 49
6: StackMap locals: java.util.logging.FileHandler java.lang.String int int java.io.File java.lang.String int int int
StackMap stack:
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
istore 9
start local 9 7: iinc 6 1
8: iconst_0
istore 10
start local 10 9: iload 6
aload 1
invokevirtual java.lang.String.length:()I
if_icmpge 11
10: aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.toLowerCase:(C)C
istore 10
11: StackMap locals: int int
StackMap stack:
iload 9
bipush 47
if_icmpne 18
12: aload 4
ifnonnull 15
13: new java.io.File
dup
aload 5
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
14: goto 16
15: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 4
aload 5
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
16: StackMap locals:
StackMap stack:
ldc ""
astore 5
17: goto 49
18: StackMap locals:
StackMap stack:
iload 9
bipush 37
if_icmpne 48
19: iload 10
bipush 116
if_icmpne 27
20: ldc "java.io.tmpdir"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 11
start local 11 21: aload 11
ifnonnull 23
22: ldc "user.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 11
23: StackMap locals: java.lang.String
StackMap stack:
new java.io.File
dup
aload 11
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
24: iinc 6 1
25: ldc ""
astore 5
26: goto 49
end local 11 27: StackMap locals:
StackMap stack:
iload 10
bipush 104
if_icmpne 34
28: new java.io.File
dup
ldc "user.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
29: invokestatic java.util.logging.FileHandler.isSetUID:()Z
ifeq 31
30: new java.io.IOException
dup
ldc "can't use %h in set UID program"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
iinc 6 1
32: ldc ""
astore 5
33: goto 49
34: StackMap locals:
StackMap stack:
iload 10
bipush 103
if_icmpne 39
35: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
36: iconst_1
istore 7
37: iinc 6 1
38: goto 49
39: StackMap locals:
StackMap stack:
iload 10
bipush 117
if_icmpne 44
40: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
41: iconst_1
istore 8
42: iinc 6 1
43: goto 49
44: StackMap locals:
StackMap stack:
iload 10
bipush 37
if_icmpne 48
45: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "%"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
46: iinc 6 1
47: goto 49
48: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
end local 10 end local 9 49: StackMap locals:
StackMap stack:
iload 6
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 6
50: aload 0
getfield java.util.logging.FileHandler.count:I
iconst_1
if_icmple 52
iload 7
ifne 52
51: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
52: StackMap locals:
StackMap stack:
iload 3
ifle 54
iload 8
ifne 54
53: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
54: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.String.length:()I
ifle 59
55: aload 4
ifnonnull 58
56: new java.io.File
dup
aload 5
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
57: goto 59
58: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 4
aload 5
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
59: StackMap locals:
StackMap stack:
aload 4
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 60 0 this Ljava/util/logging/FileHandler;
0 60 1 pattern Ljava/lang/String;
0 60 2 generation I
0 60 3 unique I
1 60 4 file Ljava/io/File;
2 60 5 word Ljava/lang/String;
3 60 6 ix I
4 60 7 sawg Z
5 60 8 sawu Z
7 49 9 ch C
9 49 10 ch2 C
21 27 11 tmpDir Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pattern
generation
unique
private synchronized void rotate();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.util.logging.FileHandler.getLevel:()Ljava/util/logging/Level;
astore 1
start local 1 1: aload 0
getstatic java.util.logging.Level.OFF:Ljava/util/logging/Level;
invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
2: aload 0
invokespecial java.util.logging.StreamHandler.close:()V
3: aload 0
getfield java.util.logging.FileHandler.count:I
iconst_2
isub
istore 2
start local 2 4: goto 12
5: StackMap locals: java.util.logging.Level int
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.files:[Ljava/io/File;
iload 2
aaload
astore 3
start local 3 6: aload 0
getfield java.util.logging.FileHandler.files:[Ljava/io/File;
iload 2
iconst_1
iadd
aaload
astore 4
start local 4 7: aload 3
invokevirtual java.io.File.exists:()Z
ifeq 11
8: aload 4
invokevirtual java.io.File.exists:()Z
ifeq 10
9: aload 4
invokevirtual java.io.File.delete:()Z
pop
10: StackMap locals: java.io.File java.io.File
StackMap stack:
aload 3
aload 4
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
pop
end local 4 end local 3 11: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
12: iload 2
ifge 5
end local 2 13: aload 0
aload 0
getfield java.util.logging.FileHandler.files:[Ljava/io/File;
iconst_0
aaload
iconst_0
invokevirtual java.util.logging.FileHandler.open:(Ljava/io/File;Z)V
14: goto 17
StackMap locals: java.util.logging.FileHandler java.util.logging.Level
StackMap stack: java.io.IOException
15: astore 2
start local 2 16: aload 0
aconst_null
aload 2
iconst_4
invokevirtual java.util.logging.FileHandler.reportError:(Ljava/lang/String;Ljava/lang/Exception;I)V
end local 2 17: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.util.logging.FileHandler.setLevel:(Ljava/util/logging/Level;)V
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/util/logging/FileHandler;
1 19 1 oldLevel Ljava/util/logging/Level;
4 13 2 i I
6 11 3 f1 Ljava/io/File;
7 11 4 f2 Ljava/io/File;
16 17 2 ix Ljava/io/IOException;
Exception table:
from to target type
13 14 15 Class java.io.IOException
public synchronized void publish(java.util.logging.LogRecord);
descriptor: (Ljava/util/logging/LogRecord;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.logging.FileHandler.isLoggable:(Ljava/util/logging/LogRecord;)Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial java.util.logging.StreamHandler.publish:(Ljava/util/logging/LogRecord;)V
3: aload 0
invokevirtual java.util.logging.FileHandler.flush:()V
4: aload 0
getfield java.util.logging.FileHandler.limit:I
ifle 6
aload 0
getfield java.util.logging.FileHandler.meter:Ljava/util/logging/FileHandler$MeteredStream;
getfield java.util.logging.FileHandler$MeteredStream.written:I
aload 0
getfield java.util.logging.FileHandler.limit:I
if_icmplt 6
5: new java.util.logging.FileHandler$1
dup
aload 0
invokespecial java.util.logging.FileHandler$1.<init>:(Ljava/util/logging/FileHandler;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/logging/FileHandler;
0 7 1 record Ljava/util/logging/LogRecord;
MethodParameters:
Name Flags
record
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.util.logging.StreamHandler.close:()V
1: aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
4: goto 6
StackMap locals:
StackMap stack: java.lang.Exception
5: pop
6: StackMap locals:
StackMap stack:
getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
dup
astore 1
monitorenter
7: getstatic java.util.logging.FileHandler.locks:Ljava/util/Set;
aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
8: aload 1
monitorexit
9: goto 12
StackMap locals: java.util.logging.FileHandler java.util.Set
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.delete:()Z
pop
13: aload 0
aconst_null
putfield java.util.logging.FileHandler.lockFileName:Ljava/lang/String;
14: aload 0
aconst_null
putfield java.util.logging.FileHandler.lockFileChannel:Ljava/nio/channels/FileChannel;
15: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/logging/FileHandler;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
7 9 10 any
10 11 10 any
Exceptions:
throws java.lang.SecurityException
private static native boolean isSetUID();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static java.lang.Integer lambda$0();
descriptor: ()Ljava/lang/Integer;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: ldc "jdk.internal.FileHandlerLogging.maxLocks"
1: bipush 100
2: invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
3: areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "FileHandler.java"
NestMembers:
java.util.logging.FileHandler$1 java.util.logging.FileHandler$InitializationErrorManager java.util.logging.FileHandler$MeteredStream
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
java.util.logging.FileHandler$1
private InitializationErrorManager = java.util.logging.FileHandler$InitializationErrorManager of java.util.logging.FileHandler
private MeteredStream = java.util.logging.FileHandler$MeteredStream of java.util.logging.FileHandler