Я пытаюсь поместить HashMap <Object, List<Object>>
в мою dataModel, но когда я вызываю метод template.process (), я получаю следующее исключение:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at freemarker.template.SimpleCollection$SimpleTemplateModelIterator.next(SimpleCollection.java:142)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:157)
at freemarker.core.Environment.visit(Environment.java:351)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:172)
at freemarker.core.Environment.visit(Environment.java:351)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:95)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:196)
at freemarker.core.Environment.process(Environment.java:176)
at freemarker.template.Template.process(Template.java:232)
После просмотра некоторых статейи старые вопросы, я попытался использовать ConcurrentHashMap вместо того же результата.Я также попытался сделать копию, используя new HashMap<Object, List<Object>>(oldHashMap)
.Есть ли другие распространенные исправления этой проблемы, которые я мог бы попробовать?
РЕДАКТИРОВАТЬ: Я знаю общую причину исключений ConcurrentModificationException.Пожалуйста, отвечайте, только если вы можете помочь мне понять, почему фреймворк Freemarker генерирует эти исключения, ладно?=)
Спасибо!