我有一个servlet,它使用服务来解析YAML
文件。但当我在我的servlet上放置一些用户流量时,我得到了:
SEVERE: Servlet.service() for servlet [SitesController] in context with path [] threw exception [java.util.ConcurrentModificationException] with root cause
java.util.ConcurrentModificationException
at java.util.ArrayList$SubList.checkForComodification(ArrayList.java:1129)
at java.util.ArrayList$SubList.listIterator(ArrayList.java:1009)
...
at com.example.UrlRedirectEngin.redirectoToRespectiveSubDomain(UrlRedirectEngin.java:250)
我不确定异常是否来自解析YAML文件。但是,异常指向我在其下面呈现页面line 250:
request.getRequestDispatcher(JSP_PAGE).forward(request, response);
我只是想知道在向ConcurrentModificationException
添加元素时是否也会发生Map
?
如果是,我该如何处理这个问题。感谢。
答案 0 :(得分:1)
该行
request.getRequestDispatcher(JSP_PAGE).forward(request, response);
转发到JSP页面。该错误也可能在该JSP内部(堆栈跟踪的一部分可能隐藏原始错误)
答案 1 :(得分:0)
ConcurrentModificationException表示您在尝试阅读时正在编辑地图/集合。 简单的例子:
final List<String> list = new ArrayList<String>()
private static final long serialVersionUID = 1L; {
{
add("Hi");
add("This is a test");
}
};
for(final String string : list) {
if(string.equals("Hi")) {
list.remove("Hi");
}
}
我认为getRequestDispatcher在您使用它时正在修改您的地图。