Added exception context to internal error page

Affects issues:
- Close #2075
This commit is contained in:
Risto Lahtela 2022-01-31 21:14:08 +02:00
parent 954ef59c0b
commit 735580c22e

View File

@ -20,7 +20,9 @@ import com.djrapitops.plan.delivery.formatting.PlaceholderReplacer;
import com.djrapitops.plan.delivery.rendering.html.Contributors;
import com.djrapitops.plan.delivery.rendering.html.Html;
import com.djrapitops.plan.delivery.rendering.html.icon.Icon;
import com.djrapitops.plan.exceptions.ExceptionWithContext;
import com.djrapitops.plan.version.VersionChecker;
import org.apache.commons.text.TextStringBuilder;
/**
* Page to display error stacktrace.
@ -60,12 +62,22 @@ public class InternalErrorPage implements Page {
}
private String createContent() {
StringBuilder paragraph = new StringBuilder();
TextStringBuilder paragraph = new TextStringBuilder();
paragraph.append("Please report this issue here: ");
paragraph.append(Html.LINK.create("https://github.com/plan-player-analytics/Plan/issues", "Issues"));
paragraph.append("<br><br><pre>");
paragraph.append(error).append(" | ").append(errorMsg);
if (error instanceof ExceptionWithContext) {
((ExceptionWithContext) error).getContext()
.ifPresent(context -> paragraph.append(context.getWhatToDo()
.map(whatToDo -> "<br>What to do about it: " + whatToDo)
.orElse("<br>Error message: " + error.getMessage()))
.append("<br><br>Related things:<br>")
.appendWithSeparators(context.toLines(), "<br>")
.append("<br>"));
}
for (StackTraceElement element : error.getStackTrace()) {
paragraph.append("<br>");
paragraph.append(" ").append(element);
@ -79,7 +91,7 @@ public class InternalErrorPage implements Page {
return paragraph.toString();
}
private void appendCause(Throwable cause, StringBuilder paragraph) {
private void appendCause(Throwable cause, TextStringBuilder paragraph) {
paragraph.append("<br>Caused by: ").append(cause);
for (StackTraceElement element : cause.getStackTrace()) {
paragraph.append("<br>");