-
Bug
-
Resolution: Cannot Reproduce
-
None
-
Minecraft 1.11.2, Minecraft 1.12, Minecraft 1.13.1
-
None
-
Windows 10, on a hard drive encrypted with SecureDoc data-at-rest encryption software
-
Community Consensus
-
Crash
This crash occurs whenever the game auto-saves.
Steps to reproduce:
- Have your .minecraft folder pointed at a drive encrypted with SecureDoc. In my case, the .minecraft folder was in its usual place on the C drive, and that drive was the one encrypted.
- Open the game, and load a singleplayer world.
- Soon after starting a world, it will attempt to auto-save – and will crash.
- Or, you could press the Esc key (attempting to get the Options screen), and it will crash at that point as well.
Observations
- This happens in the net.minecraft.stats.StatisticsManagerServer.saveStatFile() method. (using MCP 9.37 naming).
- It's a NoSuchMethodError This means that while org.apache.commons.io.FileUtils.writeStringToFile(Ljava/io/File;Ljava/lang/String;) was available at compile time, it's not available at runtime in this case. Given that this environment has a full-disk-encryption suite on it, it kinda makes sense that it would be choking off access to FileUtils.
- Importantly, this is the only usage of that writeStringToFile method in the whole game, as evidenced in MCP 9.37.
- Other file-writes use different methods, and do succeed before and after this one fails: player data, and the crash report.
Possible remedy
Notably this issue does depend on some external software messing with the system, and I understand often that takes it out of the developer's hands, but naively I can think of ways to remedy this, and I leave it to those who know better whether they are reasonable or not.
- Attempt another way to write the stats file: avoid that writeStringToFile method, and opt for something else, like whatever's used to write the crash report or the player data.
- Silently fail to write the stats file: There is already a catch block for an IOException, so adding a catch block for the NoSuchMethodError would silently prevent the crash.
Crash report
/ I'm sorry, Dave. Time: 2/12/17 10:17 AM Description: Exception in server tick loop java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.writeStringToFile(Ljava/io/File;Ljava/lang/String;)V at nv.b(SourceFile:54) at mt.b(SourceFile:292) at ccg.b(SourceFile:25) at mt.j(SourceFile:738) at cch.C(SourceFile:143) at net.minecraft.server.MinecraftServer.run(SourceFile:466) at java.lang.Thread.run(Thread.java:745) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details: Minecraft Version: 1.11.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_25, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 211104392 bytes (201 MB) / 440995840 bytes (420 MB) up to 2134114304 bytes (2035 MB) JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 Profiler Position: N/A (disabled) Player Count: 1 / 8; [ly['REDACTED'/1702, l='New World 2', x=-11.68, y=74.00, z=238.61]] Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched. #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\REDACTED\AppData\Roaming\.minecraft\crash-reports\crash-2017-02-12_10.17.38-server.txt
Related ticket
On this same machine, with the same disk encryption software, using the old launcher, I used to encounter MCL-1274, which was this same NoSuchMethodError, also not finding org.apache.commons.io.FileUtils.writeStringToFile.
Thanks.
- is duplicated by
-
MC-114616 Minecraft crashing/Winmagic Secure installed
- Resolved