forked from StarOpenSource/Engine
Escape crash message and stacktrace placeholders
This prevents warnings about '<init>' "tags" found in call stacks, or because of unescaped messages.
This commit is contained in:
parent
db52346168
commit
72b40613b8
3 changed files with 13 additions and 4 deletions
|
@ -99,6 +99,9 @@ public final class Stacktrace implements Placeholder {
|
|||
if (throwable instanceof InvocationTargetException invocationTargetException)
|
||||
getFullStackTrace(invocationTargetException.getTargetException(), stacktrace);
|
||||
|
||||
return stacktrace.toString(); // Return stack trace
|
||||
// Return stack trace
|
||||
return stacktrace
|
||||
.toString()
|
||||
.replace("<", "\\<");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,6 @@ public final class StacktraceAll implements Placeholder {
|
|||
.append(Miscellaneous.stringifyStackTrace(stacktraces.get(thread), false));
|
||||
}
|
||||
|
||||
return text.replace("%stacktrace_all%", output.toString());
|
||||
return text.replace("%stacktrace_all%", output.toString().replace("<", "\\<"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,12 +117,18 @@ Dear developer: FIX YOUR GODDAMN SHIT! Please check if your code or 3rd party su
|
|||
* @since v1-alpha0
|
||||
*/
|
||||
public static synchronized void handleCrash(@NotNull Class<?> issuerClass, @NotNull String issuerOrigin, @Nullable String issuerMetadata, @NotNull String message, @Nullable Throwable throwable, boolean throwableHandled) {
|
||||
Engine.getInstance().setState(EngineState.CRASHED);
|
||||
Engine.getInstance().setState(EngineState.CRASHED); // Update engine state
|
||||
|
||||
// Prevent throwable handled warning if set to true but no throwable has been supplied
|
||||
if (throwable == null)
|
||||
throwableHandled = false;
|
||||
|
||||
// This is so simple we don't need the PlaceholderEngine to do it for us
|
||||
// Escape message
|
||||
message = message
|
||||
.replace("\\", "\\\\")
|
||||
.replace("<", "\\<");
|
||||
|
||||
// Replace %content% and %handled%
|
||||
String base = crashTemplate
|
||||
.replace("%content%", processCrashContent())
|
||||
.replace("%handled%", throwableHandled ? "!!! This throwable is declared as handled and has been passed down the execution chain !!!" : "");
|
||||
|
|
Loading…
Reference in a new issue