Esper:如何修复核心Esper引擎中的错误java.util.ConcurrentModificationException?

Esper:如何修复核心Esper引擎中的错误java.util.ConcurrentModificationException?,java,esper,Java,Esper,当使用Esper时,我得到了这个错误 原因可能是什么 2017-02-05 15:51:59,781 [...] ERROR com.espertech.esper.core.service.ExceptionHandlingService - Exception encountered processing statement '...' statement text 'INSERT INTO Window SELECT * FROM TableWithJoins W

当使用Esper时,我得到了这个错误

原因可能是什么

2017-02-05 15:51:59,781 [...] ERROR com.espertech.esper.core.service.ExceptionHandlingService  - Exception encountered processing statement '...' statement text 'INSERT INTO Window
    SELECT *
    FROM TableWithJoins
    WHERE test=3
    ORDER BY (Math.abs(Total)) DESC
    LIMIT 10' : null
    java.util.ConcurrentModificationException
            at java.util.ArrayDeque$DeqIterator.next(ArrayDeque.java:643)
            at com.espertech.esper.event.EventBeanUtility.flatten(EventBeanUtility.java:186)
            at com.espertech.esper.collection.FlushedEventBuffer.getAndFlush(FlushedEventBuffer.java:41)
            at com.espertech.esper.view.internal.SingleStreamDispatchView.execute(SingleStreamDispatchView.java:56)
            at com.espertech.esper.core.context.util.EPStatementAgentInstanceHandle.internalDispatch(EPStatementAgentInstanceHandle.java:127)
            at com.espertech.esper.epl.named.NamedWindowServiceImpl.processHandle(NamedWindowServiceImpl.java:468)
            at com.espertech.esper.epl.named.NamedWindowServiceImpl.processDispatches(NamedWindowServiceImpl.java:247)
            at com.espertech.esper.epl.named.NamedWindowServiceImpl.dispatch(NamedWindowServiceImpl.java:214)
            at com.espertech.esper.core.service.EPRuntimeImpl.processThreadWorkQueueFront(EPRuntimeImpl.java:858)
            at com.espertech.esper.core.service.EPRuntimeImpl.processThreadWorkQueue(EPRuntimeImpl.java:810)
            at com.espertech.esper.core.service.EPRuntimeImpl.processWrappedEvent(EPRuntimeImpl.java:500)
            at com.espertech.esper.event.EventSenderBean.sendEvent(EventSenderBean.java:84)

我使用的是
ESPERV5.2

此问题可能是由前面的
insert
语句中的联接引起的

要修复此问题,请将
undirectional
添加到join语句之一

这样做的原因是,如果Esper中有join语句,则来自任何join子句的任何传入事件都可以触发更新。通过添加“单向”,这意味着只有一个线程将事件推送到下游,而不是两个,从而解决了任何线程问题


此问题可能已在Esper的后续版本中修复。

注意:此问题正式标记为“分享您的知识,问答风格”。如果您正在考虑向下投票,请考虑这一点。当前版本为6.1注:此问题正式标记为“分享您的知识,问答风格”。如果你正在考虑否决投票,请考虑这一点。