-
Notifications
You must be signed in to change notification settings - Fork 106
Description
Description The game crashes during world generation (Feature Placement) when Dynamic Trees is installed alongside C2ME (Concurrent Chunk Management Engine) in a Sinytra Connector environment.
The crash is a ClassCastException within a HashMap occurring on a C2ME worker thread. This suggests a race condition where DynamicTreeFeature is accessing or modifying a non-thread-safe collection while C2ME is generating chunks in parallel.
Steps to Reproduce
Install Minecraft 1.20.1 (Forge/Sinytra Connector).
Install C2ME (Fabric version via Connector).
Install Dynamic Trees (Forge version).
Create a new world or generate new chunks.
The game crashes/servers stops with an exception in DynamicTreeFeature.
Crash Log / Stack Trace The crash occurs in com.ferreusveritas.dynamictrees.worldgen.DynamicTreeFeature. Relevant section from the crash report:
Plaintext
Time: 2026-01-24 19:41:30
Description: Feature placement
java.lang.ClassCastException: class java.util.HashMap$Node cannot be cast to class java.util.HashMap$TreeNode
at java.util.HashMap$TreeNode.moveRootToFront(HashMap.java:1995)
at java.util.HashMap$TreeNode.treeify(HashMap.java:2111)
at java.util.HashMap.treeifyBin(HashMap.java:779)
at java.util.HashMap.putVal(HashMap.java:651)
at java.util.HashMap.put(HashMap.java:619)
...
at com.ferreusveritas.dynamictrees.worldgen.DynamicTreeFeature.m_5976_(DynamicTreeFeature.java:76) ~[DynamicTrees-1.20.1-1.4.10.jar%23497!/:?] {re:classloading}
...
at com.ishland.c2me.opts.scheduling.mixin.common.task.Mixinbind_IGuiGraphics.handler$zmn000$c2me_opts_scheduling$wrapExecutor(Mixinbind_IGuiGraphics.java:1040) ~[c2me-fabric-mc1.20.1-0.2.0+alpha.11.20.26.9.jar%23385!/:?]
Environment
Minecraft Version: 1.20.1
Forge Version: 47.4.15 (Using Sinytra Connector)
Dynamic Trees Version: 1.20.1-1.4.10
C2ME Version: 0.2.0+alpha.11 (Fabric)
Additional Context: I understand that running C2ME on Forge via Connector is a complex setup. However, this appears to be a thread-safety issue in DynamicTreeFeature. I am reporting this in case a synchronization fix can be implemented, or to request a config option to disable Dynamic Trees generation optimizations if they conflict with multithreaded chunk generators.