public class org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction extends org.apache.logging.log4j.core.appender.rolling.action.AbstractAction
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction
super_class: org.apache.logging.log4j.core.appender.rolling.action.AbstractAction
{
private final java.io.File source;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.File destination;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean renameEmptyFiles;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.io.File, java.io.File, boolean);
descriptor: (Ljava/io/File;Ljava/io/File;Z)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 org.apache.logging.log4j.core.appender.rolling.action.AbstractAction.<init>:()V
1: aload 0
aload 1
putfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.source:Ljava/io/File;
2: aload 0
aload 2
putfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.destination:Ljava/io/File;
3: aload 0
iload 3
putfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.renameEmptyFiles:Z
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
0 5 1 src Ljava/io/File;
0 5 2 dst Ljava/io/File;
0 5 3 renameEmptyFiles Z
MethodParameters:
Name Flags
src final
dst final
renameEmptyFiles final
public boolean execute();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.source:Ljava/io/File;
aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.destination:Ljava/io/File;
aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.renameEmptyFiles:Z
invokestatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.execute:(Ljava/io/File;Ljava/io/File;Z)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
public java.io.File getDestination();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.destination:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
public java.io.File getSource();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.source:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
public boolean isRenameEmptyFiles();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.renameEmptyFiles:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
public static boolean execute(java.io.File, java.io.File, boolean);
descriptor: (Ljava/io/File;Ljava/io/File;Z)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 1
aload 0
invokevirtual java.io.File.length:()J
lconst_0
lcmp
ifle 59
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 3
start local 3 2: aload 3
ifnull 7
aload 3
invokevirtual java.io.File.exists:()Z
ifne 7
3: aload 3
invokevirtual java.io.File.mkdirs:()Z
pop
4: aload 3
invokevirtual java.io.File.exists:()Z
ifne 7
5: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to create directory {}"
aload 3
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
6: iconst_0
ireturn
7: StackMap locals: java.io.File
StackMap stack:
aload 0
invokevirtual java.io.File.getAbsolutePath:()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;
aload 1
invokevirtual java.io.File.getAbsolutePath:()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;
iconst_2
anewarray java.nio.file.CopyOption
dup
iconst_0
8: getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
9: invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
10: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Renamed file {} to {} with Files.move"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
11: aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
12: invokeinterface org.apache.logging.log4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
13: iconst_1
ireturn
14: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 15: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to move file {} to {}: {} {}"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
16: aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 4
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
17: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
18: aload 0
aload 1
invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
istore 5
start local 5 19: iload 5
ifne 49
20: aload 0
invokevirtual java.io.File.getAbsolutePath:()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;
aload 1
invokevirtual java.io.File.getAbsolutePath:()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;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
21: getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
22: invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
23: aload 0
invokevirtual java.io.File.getAbsolutePath:()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;
invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
24: iconst_1
istore 5
25: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Renamed file {} to {} using copy and delete"
26: aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
27: invokeinterface org.apache.logging.log4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
28: goto 52
StackMap locals: java.io.File java.io.File int java.io.File java.io.IOException int
StackMap stack: java.io.IOException
29: astore 6
start local 6 30: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to delete file {}: {} {}"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
31: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 6
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
32: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
33: new java.io.PrintWriter
dup
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokespecial java.io.PrintWriter.<init>:(Ljava/lang/String;)V
invokevirtual java.io.PrintWriter.close:()V
34: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Renamed file {} to {} with copy and truncation"
35: aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
36: invokeinterface org.apache.logging.log4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
37: goto 52
StackMap locals: java.io.File java.io.File int java.io.File java.io.IOException int java.io.IOException
StackMap stack: java.io.IOException
38: astore 7
start local 7 39: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to overwrite file {}: {} {}"
40: aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
41: aload 7
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
42: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 7 end local 6 43: goto 52
StackMap locals: java.io.File java.io.File int java.io.File java.io.IOException int
StackMap stack: java.io.IOException
44: astore 6
start local 6 45: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to copy file {} to {}: {} {}"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
46: aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 6
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
47: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 48: goto 52
49: StackMap locals:
StackMap stack:
getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Renamed file {} to {} with source.renameTo"
50: aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
51: invokeinterface org.apache.logging.log4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
52: StackMap locals:
StackMap stack:
iload 5
53: ireturn
end local 5 end local 4 54: StackMap locals: java.io.File java.io.File int java.io.File
StackMap stack: java.lang.RuntimeException
astore 4
start local 4 55: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to rename file {} to {}: {} {}"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
56: aload 1
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 4
invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
57: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 end local 3 58: goto 65
59: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.File.delete:()Z
pop
60: goto 65
StackMap locals:
StackMap stack: java.lang.Exception
61: astore 3
start local 3 62: getstatic org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to delete empty file {}: {} {}"
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
63: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
64: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 65: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 source Ljava/io/File;
0 66 1 destination Ljava/io/File;
0 66 2 renameEmptyFiles Z
2 58 3 parent Ljava/io/File;
15 54 4 exMove Ljava/io/IOException;
19 54 5 result Z
30 43 6 exDelete Ljava/io/IOException;
39 43 7 exOwerwrite Ljava/io/IOException;
45 48 6 exCopy Ljava/io/IOException;
55 58 4 ex Ljava/lang/RuntimeException;
62 65 3 exDelete Ljava/lang/Exception;
Exception table:
from to target type
7 13 14 Class java.io.IOException
23 28 29 Class java.io.IOException
33 37 38 Class java.io.IOException
20 43 44 Class java.io.IOException
7 13 54 Class java.lang.RuntimeException
14 53 54 Class java.lang.RuntimeException
59 60 61 Class java.lang.Exception
MethodParameters:
Name Flags
source final
destination final
renameEmptyFiles final
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 Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.source:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.destination:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
1: ldc ", renameEmptyFiles="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.logging.log4j.core.appender.rolling.action.FileRenameAction.renameEmptyFiles:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/logging/log4j/core/appender/rolling/action/FileRenameAction;
}
SourceFile: "FileRenameAction.java"