org.mule.routing.CorrelationTimeoutException: Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList

MuleSoft JIRA | Evgeny Minkevich | 8 years ago
  1. 0

    Mule does not wait for timeout to expire before throwing an exception on collection aggregation router: sample : <collection-aggregator-router timeout="4000"/> Exception stack is: 1. Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList (org.mule. routing.CorrelationTimeoutException) org.mule.routing.EventCorrelator$1:148 (http://mule.mulesource.org/docs/apidocs/org/mule/routing/CorrelationTimeoutException.html) ******************************************************************************** Root Exception stack trace: org.mule.routing.CorrelationTimeoutException: Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList at org.mule.routing.EventCorrelator$1.run(EventCorrelator.java:148) at org.mule.work.WorkerContext.run(WorkerContext.java:310) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:595) EventCorrelator exerpt: ------------------------------------------------------------------------------------------------------------------- [...] if ((group.getCreated() + getTimeout()) < System.currentTimeMillis()) { expired.add(group); } [...] if (expired.size() > 0) { [...] context.fireNotification(new RoutingNotification(group.toMessageCollection(), null, RoutingNotification.CORRELATION_TIMEOUT)); group.toArray()[0].getService().getExceptionListener().exceptionThrown( new CorrelationTimeoutException(CoreMessages.correlationTimedOut(group.getGroupId()), group.toMessageCollection())); ------------------------------------------------------------------------------------------------------------------- EventGroup exrept: ------------------------------------------------------------------------------------------------------------------- public EventGroup(Object groupId, int expectedSize) { super(); this.created = Utils.nanoTime(); [...] } ------------------------------------------------------------------------------------------------------------------- So if I understand correctly in the case of group creation the long "created" value holds nano but compared to System.currentTimeMillis(). When tested Utils.nanoTime() returned: 207789816 System.currentTimeMillis() : 1218690140621 Thus the immediate timeout exception. My apologies if I misunderstood something, I'm new to Mule.

    MuleSoft JIRA | 8 years ago | Evgeny Minkevich
    org.mule.routing.CorrelationTimeoutException: Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList
  2. 0

    Mule does not wait for timeout to expire before throwing an exception on collection aggregation router: sample : <collection-aggregator-router timeout="4000"/> Exception stack is: 1. Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList (org.mule. routing.CorrelationTimeoutException) org.mule.routing.EventCorrelator$1:148 (http://mule.mulesource.org/docs/apidocs/org/mule/routing/CorrelationTimeoutException.html) ******************************************************************************** Root Exception stack trace: org.mule.routing.CorrelationTimeoutException: Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList at org.mule.routing.EventCorrelator$1.run(EventCorrelator.java:148) at org.mule.work.WorkerContext.run(WorkerContext.java:310) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:595) EventCorrelator exerpt: ------------------------------------------------------------------------------------------------------------------- [...] if ((group.getCreated() + getTimeout()) < System.currentTimeMillis()) { expired.add(group); } [...] if (expired.size() > 0) { [...] context.fireNotification(new RoutingNotification(group.toMessageCollection(), null, RoutingNotification.CORRELATION_TIMEOUT)); group.toArray()[0].getService().getExceptionListener().exceptionThrown( new CorrelationTimeoutException(CoreMessages.correlationTimedOut(group.getGroupId()), group.toMessageCollection())); ------------------------------------------------------------------------------------------------------------------- EventGroup exrept: ------------------------------------------------------------------------------------------------------------------- public EventGroup(Object groupId, int expectedSize) { super(); this.created = Utils.nanoTime(); [...] } ------------------------------------------------------------------------------------------------------------------- So if I understand correctly in the case of group creation the long "created" value holds nano but compared to System.currentTimeMillis(). When tested Utils.nanoTime() returned: 207789816 System.currentTimeMillis() : 1218690140621 Thus the immediate timeout exception. My apologies if I misunderstood something, I'm new to Mule.

    MuleSoft JIRA | 8 years ago | Evgeny Minkevich
    org.mule.routing.CorrelationTimeoutException: Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList

    Root Cause Analysis

    1. org.mule.routing.CorrelationTimeoutException

      Correlation timed out while waiting on event group with Id: "112032011570NwU44658CIIE". Message payload is of type: CopyOnWriteArrayList

      at org.mule.routing.EventCorrelator$1.run()
    2. Mule Core
      WorkerContext.run
      1. org.mule.routing.EventCorrelator$1.run(EventCorrelator.java:148)
      2. org.mule.work.WorkerContext.run(WorkerContext.java:310)
      2 frames
    3. Backport of JSR 166
      ThreadPoolExecutor$Worker.run
      1. edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
      2. edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
      2 frames
    4. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:595)
      1 frame