私はSpigotプラグインを作成していますが、このコードはサーバーをクラッシュさせています。日付の解析操作がクラッシュするサーバ
public List<String> getReports(OfflinePlayer p) {
FileConfiguration config = getData(p);
List<String> reports = new ArrayList<String>();
for (String item : config.getConfigurationSection("reports").getKeys(false)) {
try {
Date created = dateFormat.parse(config.getString("reports." + item + ".date"));
if (!reports.isEmpty()) {
boolean added = false;
for (int i = 0; i < reports.size(); i++) {
try {
String e = reports.get(i);
String edate = config.getString("reports." + e + ".date");
Date eday = dateFormat.parse(edate);
if (created.after(eday) || created.equals(eday)) {
reports.add(i, item);
added = true;
}
} catch (Throwable e) {
e.printStackTrace();
}
}
if (!added) {
reports.add(item);
}
} else {
reports.add(item);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return reports;
}
無効な日付文字列はParseExceptionをスローしますが、エラーはスローされません。私はThrowableを捕まえようとしましたが、それは何もしませんでした。文字列は有効で、私のプラグインで正しくインポートされています(チェックしました)。このメソッドは1-2個の項目で機能しますが、何らかの理由でそれ以上のものが壊れてしまいます。
はここにある私のデータ(YAML):
メソッドが何しようとしている何reports:
'1':
type: Misc
source: 6db6fde9-802f-4bef-a40a-fe516a7a8309
reason: Idk
date: 28/10/2016 19:09:16
'2':
type: Grief
source: 6db6fde9-802f-4bef-a40a-fe516a7a8309
reason: He destroyed my building! And he did really nasty stuff too meh, ban him now!
date: 28/10/2016 19:14:56
'3':
type: Hacking
source: 6db6fde9-802f-4bef-a40a-fe516a7a8309
reason: He was flying like mad all over the place. This guy needs to be banned!
date: 28/10/2016 19:29:33
、プレイヤーの履歴からデータをインポートし、新しいものから順に、それを並べ替えます。私はこれまでに起こったような何かを見たことがない、それが起こるような何かのために文書化されていない。私は本当にばかなことをしなければならないことを知っていますが、それが何であるかを知るためには助けが必要です。
編集:ここでは は私のDATEFORMATフェイルドある
public final DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.US);
編集:私はすでに具体的なエラーがスローされなかったと述べていますが、ここで助け
[10:08:18] [Spigot Watchdog Thread/ERROR]: The server has stopped responding!
[10:08:18] [Spigot Watchdog Thread/ERROR]: Please report this to http://www.spigotmc.org/
[10:08:18] [Spigot Watchdog Thread/ERROR]: Be sure to include ALL relevant console errors and Minecraft crash reports
[10:08:18] [Spigot Watchdog Thread/ERROR]: Spigot version: git-Spigot-5f38d38-18fbb24 (MC: 1.8.8)
[10:08:18] [Spigot Watchdog Thread/ERROR]: ------------------------------
[10:08:18] [Spigot Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Spigot!):
[10:08:18] [Spigot Watchdog Thread/ERROR]: ------------------------------
[10:08:18] [Spigot Watchdog Thread/ERROR]: Current Thread: Server thread
[10:08:18] [Spigot Watchdog Thread/ERROR]: PID: 16 | Suspended: false | Native: false | State: RUNNABLE
[10:08:18] [Spigot Watchdog Thread/ERROR]: Stack:
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.text.DecimalFormat.parse(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.text.SimpleDateFormat.subParse(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.text.SimpleDateFormat.parse(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.text.DateFormat.parse(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: com.rictacius.punishSystem.system.History.getReports(History.java:155)
[10:08:18] [Spigot Watchdog Thread/ERROR]: com.rictacius.punishSystem.gui.PunishMenu.getReportsBar(PunishMenu.java:57)
[10:08:18] [Spigot Watchdog Thread/ERROR]: com.rictacius.punishSystem.gui.PunishMenu.getMainMenu(PunishMenu.java:41)
[10:08:18] [Spigot Watchdog Thread/ERROR]: com.rictacius.punishSystem.command.PunishCommand.onCommand(PunishCommand.java:62)
[10:08:18] [Spigot Watchdog Thread/ERROR]: org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[10:08:18] [Spigot Watchdog Thread/ERROR]: org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
[10:08:18] [Spigot Watchdog Thread/ERROR]: org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.util.concurrent.FutureTask.run(Unknown Source)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
[10:08:18] [Spigot Watchdog Thread/ERROR]: net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
[10:08:18] [Spigot Watchdog Thread/ERROR]: java.lang.Thread.run(Unknown Source)
最後の項目ではdoesntのスタックトレースがあります私と関係のあるスタックはこの行です
日付eday = dateFormat.parse(edate);
エラーはどういうものですか? – Kerooker
私は何かエラーが発生していない、それは問題です。サーバーがクラッシュするだけです。私はちょうど何かエラーが発生したことを私に言っている見出しなしで、スタックトレースを取得します。スタックの一番上は_Date eday = dateFormat.parse(edate); _ –
のようになります。 'Date created = dateFormat.parse(config.getString(" + item + ".date")をレポートします));例外。あなたがそれを解析しようとしていたものを印刷しましたか?あるいは、それは 'Date eday = dateFormat.parse(edate);'ですか? – Tunaki