Add more detailed CrashReport for CraftBukkit. Addresses BUKKIT-2319
Dieser Commit ist enthalten in:
Ursprung
acedd049c5
Commit
cacfc71b46
@ -35,6 +35,7 @@ public class CrashReport {
|
|||||||
this.a("Java VM Version", (Callable) (new CrashReportJavaVMVersion(this)));
|
this.a("Java VM Version", (Callable) (new CrashReportJavaVMVersion(this)));
|
||||||
this.a("Memory", (Callable) (new CrashReportMemory(this)));
|
this.a("Memory", (Callable) (new CrashReportMemory(this)));
|
||||||
this.a("JVM Flags", (Callable) (new CrashReportJVMFlags(this)));
|
this.a("JVM Flags", (Callable) (new CrashReportJVMFlags(this)));
|
||||||
|
this.a("CraftBukkit Information", (Callable) (new org.bukkit.craftbukkit.CraftCrashReport())); // CraftBukkit
|
||||||
}
|
}
|
||||||
|
|
||||||
public void a(String s, Callable callable) {
|
public void a(String s, Callable callable) {
|
||||||
|
41
src/main/java/org/bukkit/craftbukkit/CraftCrashReport.java
Normale Datei
41
src/main/java/org/bukkit/craftbukkit/CraftCrashReport.java
Normale Datei
@ -0,0 +1,41 @@
|
|||||||
|
package org.bukkit.craftbukkit;
|
||||||
|
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.io.StringWriter;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.Callable;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
|
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
|
||||||
|
public class CraftCrashReport implements Callable {
|
||||||
|
|
||||||
|
public Object call() throws Exception {
|
||||||
|
StringWriter value = new StringWriter();
|
||||||
|
try {
|
||||||
|
value.append("\n Running: ").append(Bukkit.getName()).append(" version ").append(Bukkit.getVersion()).append(" (Implementing API version ").append(Bukkit.getBukkitVersion()).append(") ").append(String.valueOf(MinecraftServer.getServer().getOnlineMode()));
|
||||||
|
value.append("\n Plugins: {");
|
||||||
|
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||||
|
PluginDescriptionFile description = plugin.getDescription();
|
||||||
|
value.append(' ').append(description.getFullName()).append(' ').append(description.getMain()).append(' ').append(Arrays.toString(description.getAuthors().toArray())).append(',');
|
||||||
|
}
|
||||||
|
value.append("}\n Warnings: ").append(Bukkit.getWarningState().name());
|
||||||
|
value.append("\n Threads: {");
|
||||||
|
for (Map.Entry<Thread, ? extends Object[]> entry : Thread.getAllStackTraces().entrySet()) {
|
||||||
|
value.append(' ').append(entry.getKey().getState().name()).append(' ').append(entry.getKey().getName()).append(": ").append(Arrays.toString(entry.getValue())).append(',');
|
||||||
|
}
|
||||||
|
value.append('}');
|
||||||
|
} catch (Throwable t) {
|
||||||
|
value.append("\n Failed to handle CraftCrashReport:\n");
|
||||||
|
PrintWriter writer = new PrintWriter(value);
|
||||||
|
t.printStackTrace(writer);
|
||||||
|
writer.flush();
|
||||||
|
}
|
||||||
|
return value.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
In neuem Issue referenzieren
Einen Benutzer sperren