The error show up randomly. Here is how I re-create the issue.
What I'm doing exactly.
Starting the server > loading fine > logging into the game > kill the process of gameserver.bat (console).
Starting the server > loading with error.
Code:
[10:30:55] INFO HtmCache: Starting cache build. Please wait until it finishes.
[10:30:55] ERROR Exception: RunnableImpl.run(): java.util.ConcurrentModificationException
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1221)
at l2.gameserver.data.htm.HtmCache.a(Unknown Source)
at l2.gameserver.data.htm.HtmCache.putContent(Unknown Source)
at l2.gameserver.data.htm.HtmCache$1.runImpl(Unknown Source)
at l2.commons.threading.RunnableImpl.run(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
[10:30:57] INFO HtmCache: Loaded documents for all languages.
[10:31:04] INFO HtmCache: Loaded 14458 document(s) for lang 'ru'.
[10:31:04] INFO HtmCache: Loaded 16846 document(s) for lang 'en'.
Closing the console > Starting the server again. Showing the error
Code:
[10:34:18] INFO HtmCache: Starting cache build. Please wait until it finishes.
[10:34:18] ERROR Exception: RunnableImpl.run(): java.util.ConcurrentModificationException
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1221)
at l2.gameserver.data.htm.HtmCache.a(Unknown Source)
at l2.gameserver.data.htm.HtmCache.putContent(Unknown Source)
at l2.gameserver.data.htm.HtmCache$1.runImpl(Unknown Source)
at l2.commons.threading.RunnableImpl.run(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
[10:34:18] ERROR Exception: RunnableImpl.run(): java.util.ConcurrentModificationException
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1221)
at l2.gameserver.data.htm.HtmCache.a(Unknown Source)
at l2.gameserver.data.htm.HtmCache.putContent(Unknown Source)
at l2.gameserver.data.htm.HtmCache$1.runImpl(Unknown Source)
at l2.commons.threading.RunnableImpl.run(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
[10:34:20] INFO HtmCache: Loaded documents for all languages.
[10:34:20] INFO HtmCache: Loaded 14458 document(s) for lang 'ru'.
[10:34:20] INFO HtmCache: Loaded 16843 document(s) for lang 'en'.
Closing the console again > Starting the server again > loading good
Code:
[10:34:55] INFO GeoEngine: Loaded 166 map(s), max layers: 21
[10:34:55] INFO Loaded 418 translit entries.
[10:34:55] INFO GameTimeController: initialized. Now 09:24 in game. Day time.
[10:34:55] INFO World Build: Creating regions: [192][272][32].
[10:34:55] INFO LanguageHolder: loaded 2 language(s) count.
[10:34:55] INFO HtmCache: Starting cache build. Please wait until it finishes.
[10:34:58] INFO HtmCache: Loaded documents for all languages.
[10:34:58] INFO HtmCache: Loaded 14459 document(s) for lang 'ru'.
[10:34:58] INFO HtmCache: Loaded 16846 document(s) for lang 'en'.
[10:34:59] INFO StringHolder: load strings: 2265 for lang: ru
[10:34:59] INFO StringHolder: load strings: 2288 for lang: en
[10:34:59] INFO EnchantSkillHolder: loaded 258 enchant skill(s) count.
[10:34:59] INFO Loading skills from 1-99.xml ...
This is the new lang update. All files are clean directly from the SVN without any ext.jar without any config modifications. (Just cache set to 2 or 0 for testing)
And when you login into the game and open any npc HTML and then close the bat file (console) > start again the server the cache error pops up.
[21.09.25 10:40:33] Revision: ................ 1639M
[21.09.25 10:40:33] Build date: .............. 2025.09.20 12:09
[21.09.25 10:40:33] Compiler version: ........ 17.0.12+8-LTS-28
View attachment 6961