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

Mirth Project | Mike Nowlin | 1 decade ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  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 | 1 decade 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