java.util.HashMap$Ha: censored:erator.nextEntry(HashMap.java:787)

Mirth Project | Mike Nowlin | 10 years ago
  1. 0

    Exception occurred while processing several messages at the same time - only happened once out of 50+K messages over the last week or so. Error writing to the database java.util.ConcurrentModificationException at java.util.HashMap$Ha:censored:erator.nextEntry(HashMap.java:787) at java.util.HashMap$EntryIterator.next(HashMap.java:829) at java.util.HashMap$EntryIterator.next(HashMap.java:827) at org.mule.providers.TemplateValueReplacer.loadContext(TemplateValueReplacer.java:55) at org.mule.providers.TemplateValueReplacer.replaceValues(TemplateValueReplacer.java:29) at org.mule.providers.jdbc.JdbcUtils.getParams(JdbcUtils.java:106) at org.mule.providers.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:113) at org.mule.providers.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:257) at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) Quote from Chris: Ah very interesting...it appears that values are being modified in a hash-map while Mirth is trying to iterate through it. This points to an area where we need to synchronize the threads. Can you add this to the JIRA? I'll try to get a fix for this in 1.3.2 (coming withing a week). Additional info available if needed - I haven't deleted anything from the PGSQL DB. thanks - mike

    Mirth Project | 10 years ago | Mike Nowlin
    java.util.HashMap$Ha: censored:erator.nextEntry(HashMap.java:787)

    Root Cause Analysis

    1. java.util.HashMap$Ha

      censored:erator.nextEntry(HashMap.java:787)

      at java.util.HashMap$EntryIterator.next()
    2. Java RT
      HashMap$EntryIterator.next
      1. java.util.HashMap$EntryIterator.next(HashMap.java:829)
      2. java.util.HashMap$EntryIterator.next(HashMap.java:827)
      2 frames
    3. org.mule.providers
      AbstractMessageDispatcher$Worker.run
      1. org.mule.providers.TemplateValueReplacer.loadContext(TemplateValueReplacer.java:55)
      2. org.mule.providers.TemplateValueReplacer.replaceValues(TemplateValueReplacer.java:29)
      3. org.mule.providers.jdbc.JdbcUtils.getParams(JdbcUtils.java:106)
      4. org.mule.providers.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:113)
      5. org.mule.providers.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:257)
      5 frames
    4. org.mule.impl
      WorkerContext.run
      1. org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
      1 frame
    5. Backport of JSR 166
      ThreadPoolExecutor$Worker.run
      1. edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      2. edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
      2 frames
    6. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:595)
      1 frame