The bug
Attempting to start a server with square brackets missing in banned-ips.json causes a crash.
Stack trace
1.18.2\: [^crash-2022-03-30_19.35.41-server.txt]
Description: Exception in server tick loop
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonArray.iterator()" because "$$1" is null
at ags.f(SourceFile:121)
at acw.y(SourceFile:76)
at acw.<init>(SourceFile:25)
at acx.e(SourceFile:172)
at net.minecraft.server.MinecraftServer.w(SourceFile:670)
at net.minecraft.server.MinecraftServer.a(SourceFile:273)
at java.base/java.lang.Thread.run(Thread.java:833)Code analysis
Code analysis by @unknown can be found in this comment.
Linked issues
is duplicated by 1
relates to 1
Attachments
Comments 6
You should leave this open, it shouldn't crash because the file is empty/malformatted. (Empty should just default to a newly generated file, malformatted, I'd suggest, creating a backup file and emptying the original.)
Might want to check if the same happens with banned players, whitelist and ops files.
Code analysis (1.18.2): when loading ops and whitelist files, Exception is caught and ignored, but when loading bans, only IOException is caught. Since JSON parsing exceptions are not IOException, it will propagate and crash.
DedicatedPlayerManager.java
private void loadUserBanList() {
try {
getUserBanList().load();
} catch (IOException iOException) { // IOException only
LOGGER.warn("Failed to load user banlist: ", iOException);
}
}
private void loadOpList() {
try {
getOpList().load();
} catch (Exception exception) { // All exceptions
LOGGER.warn("Failed to load operators list: ", exception);
}
}Thank you for your report!
We're resolving and linking this ticket forward as a duplicate of MC-251813, as that ticket contains more detailed information and/or has already been triaged by Mojang.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki
pinpointed the issue to the banned-ips.json file, the square brackets were missing (no ips were banned, literally a blank file) threw me off a little, especially given the error message, either way, issue fixed