首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Esper:如何修复核心Esper引擎中的错误java.util.ConcurrentModificationException?

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

Stack Overflow用户
提问于 2017-07-06 17:35:03
回答 1查看 103关注 0票数 0

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

可能的原因是什么?

代码语言:javascript
复制
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)

我正在使用Esper v5.2

EN

回答 1

Stack Overflow用户

发布于 2017-07-06 17:35:03

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

要修复此问题,请将undirectional添加到其中一个join语句中。

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

此问题可能已在更高版本的Esper中修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44945130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档