Server crash on launch using Java 9 or newer
The bug
Server does not launch using Java 10. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash. Both OpenJDK and Oracle's JRE are affected. This issue does not seem to occur when using Java 8.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]
Code analysis
Code analysis by [Mod] Pokechu22 in this comment.
Environment
OS : Ubuntu 18.04; Windows 10
Java : java-11-openjdk-amd64; Oracle Java 10.0.1 (windows)
Created Issue:
Server crash on launch using OpenJDK
Server does not launch using OpenJDK. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash.
The server runs when using Oracle's Java.
Environment
OS : Ubuntu 18.04
Java : java-11-openjdk-amd64
Server does not launch using OpenJDK. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash.
The server runs when using Oracle's Java.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]
Server crash on launch using OpenJDK 1.10
Server does not launch using
OpenJDK. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash.Th
e server runswhen usingOracle'sJava.[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]Server does not launch using Java 10. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash. Both OpenJDK and Oracle's JRE are affected.
This issue does not seem to occur when using Java 8.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]
OS : Ubuntu 18.04; Windows 10
Java : java-11-openjdk-amd64; Oracle Java 10.0.1 (windows)
Server crash on launch usingOpenJDK1.10Server crash on launch using Java 1.10
Server crash on launch using Java1.10Server crash on launch using Java 9 or newer
Server does not launch using Java 10. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash. Both OpenJDK and Oracle's JRE are affected.
This issue does not seem to occur when using Java 8.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]Code analysis
Code analysis by [Mod] Pokechu22 in this comment.
is duplicated by
Server does not launch using Java 10. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash.
Both OpenJDK and Oracle's JRE are affected.This issue does not seem to occur when using Java 8.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]Code analysis
Code analysis by [Mod] Pokechu22 in this comment.
The bug
Server does not launch using Java 10. It was working fine before 1.13-pre5 (1.13-pre4 included). I included the log of the crash. Both OpenJDK and Oracle's JRE are affected. This issue does not seem to occur when using Java 8.
[16:53:37] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(HashMap.java:1139) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:251) ~[server.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[server.jar:?] at java.util.HashMap.computeIfAbsent(HashMap.java:1138) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[server.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[server.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[server.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[server.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[server.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[server.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[server.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:844) [?:?]Code analysis
Code analysis by [Mod] Pokechu22 in this comment.
is duplicated by
I get the same problem using OpenJDK 10.0.1 on Arch Linux.
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)Trying to run the start script actually starts the server ~5% of the time.
MC-132248 was why it wasn't starting on Java 10. If it wasn't starting with Java 8, then that's just weird...
Please close this issue. It is a duplicate of https://bugs.mojang.com/browse/MC-148830
Game randomly crashes when generating chunks. This issue seems to affect both the Integrated Vanilla Game Server and Bukkit, so it should be addressed.
Possibly connected to MC-132248
--
Windows Crash:
---- Minecraft Crash Report ---- // Daisy, daisy...Time: 4/27/19 2:10 PM Description: Exception ticking worldjava.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at bhu.a(SourceFile:72) at vg.a(SourceFile:317) at net.minecraft.server.MinecraftServer.b(SourceFile:827) at net.minecraft.server.MinecraftServer.a(SourceFile:764) at dxh.a(SourceFile:128) at net.minecraft.server.MinecraftServer.run(SourceFile:632) at java.lang.Thread.run(Thread.java:745) A detailed walkthrough of the error, its code path and all known details is as follows: ----------------------------------------------------------------------------------------- Head -- Thread: Server thread Stacktrace: at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at bhu.a(SourceFile:72) at vg.a(SourceFile:317)-- Affected level -- Details: Level name: Pregenerate All players: 1 total; [vh['DefineOutside'/271, l='Pregenerate', x=851.50, y=254.00, z=-208.50]] Chunk stats: ServerChunkCache: 4716 Level seed: 6221344619707477178 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: {} Level spawn location: World: (80,63,-208), Chunk: (at 0,3,0 in 5,-13; contains blocks 80,0,-208 to 95,255,-193), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1) Level time: 13793 game time, 13793 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 32382 (now: false), thunder time: 152175 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.MinecraftServer.b(SourceFile:827) at net.minecraft.server.MinecraftServer.a(SourceFile:764) at dxh.a(SourceFile:128) at net.minecraft.server.MinecraftServer.run(SourceFile:632) at java.lang.Thread.run(Thread.java:745)-- System Details -- Details: Minecraft Version: 1.14 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_51, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 969421744 bytes (924 MB) / 1979711488 bytes (1888 MB) up to 2147483648 bytes (2048 MB) JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M Player Count: 1 / 8; [vh['DefineOutside'/271, l='Pregenerate', x=851.50, y=254.00, z=-208.50]] Data Packs: vanilla Type: Integrated Server (map_client.txt) Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
I have the same error using Oracle Java 10.0.1 in Debian 9.4
Original Poster here : mine works with Oracle Java 8. Didn't try with Java 10
restarting the same instance on Oracle Java 1.8 works.
I also can't run 1.15 pre5 with java 10
I'm gonna try with 1.8 now.
edit:
Starting the server with Java 1.8 made it work.
I read somewhere that you needed to use the jre version, I don't know if that's true though.
for those who don't know how, make your batchfile like this:
In my case, that would be:
"C:\Program Files (x86)\Java\jre1.8.0_121\bin\java.exe" -Xmx1024M -Xms1024M -Xss1m -jar minecraft_server.jarKept failing for me with Java 10 (Oracle JDK). Tried with -Xss1m, didn't work, -Xss2m did work, but a subsequent restart didn't.
Java 8 (Oracle, 8u172) works.
I get the same exception, but with a different stack trace - the last entry that matches is "com.mojang.datafixers.schemas.Schema.getType(Schema.java:80)":
I tried both Oracle JDK 10.0.1 and OpenJDK 10.0.1 on Gentoo Linux, makes no difference. If I use JDK 8 or go back to 1.13-pre4 the problem is gone.
I'm experiencing the same issue on windows, 1.13-pre6, oracle jdk 10.0.1. Several different errors, but all of them are ConcurrentModificationException}}s in {{TaggedChoice (some wrapped in {{ExceptionInInitializerError}}s, some not). It happens both when running the main server and for data generators. Examples:
[13:49:59] [Bootstrap 0/ERROR]: Unable to build datafixers java.util.ConcurrentModificationException: null at java.util.HashMap.computeIfAbsent(Unknown Source) ~[?:?] at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:213) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) ~[minecraft_server.1.13-pre6.jar:?] at java.util.HashMap.computeIfAbsent(Unknown Source) ~[?:?] at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) ~[minecraft_server.1.13-pre6.jar:?] at com.mojang.datafixers.DataFixerBuilder.lambda$build$1(DataFixerBuilder.java:68) ~[minecraft_server.1.13-pre6.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?] at java.lang.Thread.run(Unknown Source) [?:?]Exception in thread "main" java.lang.ExceptionInInitializerError at pc.c(SourceFile:466) at net.minecraft.server.MinecraftServer.main(SourceFile:737) Caused by: java.util.ConcurrentModificationException at java.base/java.util.HashMap.computeIfAbsent(Unknown Source) at com.mojang.datafixers.DSL.taggedChoiceType(DSL.java:213) at com.mojang.datafixers.types.templates.TaggedChoice.lambda$null$1(TaggedChoice.java:72) at java.base/java.util.HashMap.computeIfAbsent(Unknown Source) at com.mojang.datafixers.types.templates.TaggedChoice.lambda$apply$2(TaggedChoice.java:71) at com.mojang.datafixers.types.templates.Named.lambda$apply$0(Named.java:43) at com.mojang.datafixers.types.templates.Check$1.apply(Check.java:45) at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) at com.mojang.datafixers.types.templates.Sum$1.apply(Sum.java:50) at com.mojang.datafixers.types.families.RecursiveTypeFamily.lambda$null$1(RecursiveTypeFamily.java:107) at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.unfold(RecursivePoint.java:132) at com.mojang.datafixers.types.templates.RecursivePoint$RecursivePointType.findCheckedType(RecursivePoint.java:183) at com.mojang.datafixers.schemas.Schema.getType(Schema.java:80) at com.mojang.datafixers.schemas.Schema.findChoiceType(Schema.java:111) at com.mojang.datafixers.schemas.Schema.getChoiceType(Schema.java:103) at aay.getChoiceType(SourceFile:23) at aef$a.a(SourceFile:440) at aef.a(SourceFile:131) at aef.<clinit>(SourceFile:137) ... 2 moreThe server will occasionally start; running it in a loop can make the issue easier to experience (easier with data generators as there is no need to enter stop; while true; java -cp minecraft_server.1.13-pre6.jar net.minecraft.data.Main --all; done works fine for it). I'm currently testing if it also happens with other java versions.
Affects 1.13 pre-6
The cause of this seems to be fairly simple: in the datafixuerupper library, com.mojang.datafixers.DSL.taggedChoiceType is accessed from multiple threads (the Bootstrap 0 thread and the main thread). This happens in EntityType and BlockEntityType (both of which call DataFixer.getSchema), and that was introduced in 1.13-pre5.
That method calls Instances.TAGGED_CHOICE_TYPE_CACHE.computeIfAbsent, where TAGGED_CHOICE_TYPE_CACHE is a HashMap. This call can happen from multiple threads, without any thread safety. That explains the ConcurrentModificationExceptions, doesn't it? To fix it, the map could be made thread-local, or a ConcurrentHashMap could be used, or some other similar fix.
However, that doesn't explain why there is no ConcurrentModificationException in Java 8. The reason for that is actually fairly simple: they didn't bother to check (JDK-8071667) until Java 9 (instead broken behavior happened in that case). It was fixed in changeset 11714:0c3aa853064e. So, the code is still broken in Java 8, but it's silently broken instead of obviously broken.
How do you get java 10? i cant even find 9, i only find java 8, 171 there isent a newer one
You can get it from here. However, note that Java 8 is still supported and Java 10 is a separate major release so you don't necessarily need to switch. (Java 9 is no longer readily downloadable to my understanding)
but isent java and java SE different things. To my knowledge minecraft dosent need SE i usually just use it for netbeans
SE = standard edition, it's the same thing you'd get normally. I did link to the JDK though (which isn't needed to run, only to develop) instead of the normal download page, but that's mainly because the installers on that page are a lot less annoying; the page also has JREs.
It is interesting that java.com doesn't actually have Java 9 or 10, but that might be because 9 and 10 aren't long-term support on the new model (11 will be, so I'd assume it will be on there).