@@ -6,7 +6,7 @@ Subject: [PATCH] Deobfuscate stacktraces in log messages, crash reports, and
6
6
7
7
8
8
diff --git a/build.gradle.kts b/build.gradle.kts
9
- index eea412347cef390555166a988058ae877afdfa4a..b35e54380cb23758a813fa24d13b888f36906c23 100644
9
+ index fd037da8b655b329ef016356519a69ca2621fd4f..03c9f894a2eaa065c456843eef4d3ab1a25565c3 100644
10
10
--- a/build.gradle.kts
11
11
+++ b/build.gradle.kts
12
12
@@ -1,8 +1,12 @@
@@ -120,10 +120,10 @@ index 0bb4aaa546939b67a5d22865190f30478a9337c1..d3e619655382e50e9ac9323ed942502d
120
120
121
121
diff --git a/src/main/java/io/papermc/paper/logging/StacktraceDeobfuscatingRewritePolicy.java b/src/main/java/io/papermc/paper/logging/StacktraceDeobfuscatingRewritePolicy.java
122
122
new file mode 100644
123
- index 0000000000000000000000000000000000000000..d019802a36dbaca4bf299a55d28381e43d6b976f
123
+ index 0000000000000000000000000000000000000000..c701ef3c287f62aa0ebfbdbd6da6ed82a1c7793c
124
124
--- /dev/null
125
125
+++ b/src/main/java/io/papermc/paper/logging/StacktraceDeobfuscatingRewritePolicy.java
126
- @@ -0,0 +1,31 @@
126
+ @@ -0,0 +1,38 @@
127
127
+ package io.papermc.paper.logging;
128
128
+
129
129
+ import io.papermc.paper.util.StacktraceDeobfuscator;
@@ -132,7 +132,8 @@ index 0000000000000000000000000000000000000000..d019802a36dbaca4bf299a55d28381e4
132
132
+ import org.apache.logging.log4j.core.appender.rewrite.RewritePolicy;
133
133
+ import org.apache.logging.log4j.core.config.plugins.Plugin;
134
134
+ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
135
- + import org.jetbrains.annotations.NotNull;
135
+ + import org.apache.logging.log4j.core.impl.Log4jLogEvent;
136
+ + import org.checkerframework.checker.nullness.qual.NonNull;
136
137
+
137
138
+ @Plugin(
138
139
+ name = "StacktraceDeobfuscatingRewritePolicy",
@@ -141,17 +142,23 @@ index 0000000000000000000000000000000000000000..d019802a36dbaca4bf299a55d28381e4
141
142
+ printObject = true
142
143
+ )
143
144
+ public final class StacktraceDeobfuscatingRewritePolicy implements RewritePolicy {
145
+ + private StacktraceDeobfuscatingRewritePolicy() {
146
+ + }
147
+ +
144
148
+ @Override
145
- + public @NotNull LogEvent rewrite(final @NotNull LogEvent rewrite) {
149
+ + public @NonNull LogEvent rewrite(final @NonNull LogEvent rewrite) {
146
150
+ final Throwable thrown = rewrite.getThrown();
147
151
+ if (thrown != null) {
148
152
+ StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thrown);
153
+ + return new Log4jLogEvent.Builder(rewrite)
154
+ + .setThrownProxy(null)
155
+ + .build();
149
156
+ }
150
157
+ return rewrite;
151
158
+ }
152
159
+
153
160
+ @PluginFactory
154
- + public static @NotNull StacktraceDeobfuscatingRewritePolicy createPolicy() {
161
+ + public static @NonNull StacktraceDeobfuscatingRewritePolicy createPolicy() {
155
162
+ return new StacktraceDeobfuscatingRewritePolicy();
156
163
+ }
157
164
+ }
0 commit comments