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.
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.