Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-8829

ConcurrentModificationException while logging

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.15.2
    • 2.16.0
    • camel-core
    • None
    • Unknown

    Description

      There is a route which consumes messages from CXFRS endpoint.
      It publishes them into 2 SEDA endpoints:

      from("direct:someCxfRsEndpoint")
         ...
         .to("seda:queue1?waitForTaskToComplete=Never&size=100&blockWhenFull=true&concurrentConsumers=1")
         .to("seda:queue2?waitForTaskToComplete=Never&size=100&blockWhenFull=true&concurrentConsumers=1")
         ...
      

      Both the seda consumers print the message into log:

      from("seda..")
         ...
         .to("log:queuelog?showAll=true&multiline=true")
      

      ConcurrentModificationException is thrown during logging the message:

      Error processing exchange. Exchange[Message: ...]. Caused by: [java.util.ConcurrentModificationException - null]
      java.util.ConcurrentModificationException: null
              at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) ~[na:1.8.0_40]
              at java.util.HashMap$EntryIterator.next(HashMap.java:1463) ~[na:1.8.0_40]
              at java.util.HashMap$EntryIterator.next(HashMap.java:1461) ~[na:1.8.0_40]
              at java.util.AbstractMap.toString(AbstractMap.java:531) ~[na:1.8.0_40]
              at java.lang.String.valueOf(String.java:2982) ~[na:1.8.0_40]
              at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_40]
              at java.util.AbstractMap.toString(AbstractMap.java:536) ~[na:1.8.0_40]
              at java.lang.String.valueOf(String.java:2982) ~[na:1.8.0_40]
              at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_40]
              at org.apache.camel.processor.DefaultExchangeFormatter.format(DefaultExchangeFormatter.java:99) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.CamelLogProcessor.process(CamelLogProcessor.java:66) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.CamelLogProcessor.process(CamelLogProcessor.java:61) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.component.log.LogProducer.process(LogProducer.java:39) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) ~[camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:291) [camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:200) [camel-core-2.15.2.jar:2.15.2]
              at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:147) [camel-core-2.15.2.jar:2.15.2]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
      

      There is also another cause when it happens:

       org.eclipse.jetty.http.HttpFields -
      java.util.ConcurrentModificationException: null
      at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) ~[na:1.8.0_40]
      at java.util.ArrayList$Itr.next(ArrayList.java:851) ~[na:1.8.0_40]
      at org.eclipse.jetty.http.HttpFields.toString(HttpFields.java:585) ~[jetty-http-9.2.9.v20150224.jar:9.2.9.v20150224]
      at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2886) [na:1.8.0_40]
      at java.util.Formatter$FormatSpecifier.print(Formatter.java:2763) [na:1.8.0_40]
      at java.util.Formatter.format(Formatter.java:2520) [na:1.8.0_40]
      at java.util.Formatter.format(Formatter.java:2455) [na:1.8.0_40]
      at java.lang.String.format(String.java:2928) [na:1.8.0_40]
      at org.eclipse.jetty.server.Response.toString(Response.java:1331) [jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
      at java.lang.String.valueOf(String.java:2982) [na:1.8.0_40]
      at java.lang.StringBuilder.append(StringBuilder.java:131) [na:1.8.0_40]
      at java.util.AbstractMap.toString(AbstractMap.java:536) [na:1.8.0_40]
      at java.lang.String.valueOf(String.java:2982) [na:1.8.0_40]
      at java.lang.StringBuilder.append(StringBuilder.java:131) [na:1.8.0_40]
      at java.util.AbstractMap.toString(AbstractMap.java:536) [na:1.8.0_40]
      at java.lang.String.valueOf(String.java:2982) [na:1.8.0_40]
      at java.lang.StringBuilder.append(StringBuilder.java:131) [na:1.8.0_40]
      at org.apache.camel.processor.DefaultExchangeFormatter.format(DefaultExchangeFormatter.java:99) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.CamelLogProcessor.process(CamelLogProcessor.java:66) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.CamelLogProcessor.process(CamelLogProcessor.java:61) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.component.log.LogProducer.process(LogProducer.java:39) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:129) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:291) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:200) [camel-core-2.15.2.jar:2.15.2]
      at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:147) [camel-core-2.15.2.jar:2.15.2]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_40]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_40]
      at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40]
      

      Attachments

        Issue Links

          Activity

            People

              davsclaus Claus Ibsen
              stafi Stanislav Filyuta
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: