citrusframework / citrusframework/citrus
Random concurrent modification exception when receiving message from http channel
- Dominant language
- Java
- Stars
- 485
- Forks
- 155
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 6
Description
**2.7.4**
**Message always received from http channel**
**Concurrent Modification Exception is randomly reproduced**
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:752)
at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:750)
at java.util.AbstractMap.toString(AbstractMap.java:554)
at java.util.Collections$UnmodifiableMap.toString(Collections.java:1495)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at com.consol.citrus.message.DefaultMessage.toString(DefaultMessage.java:104)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at org.springframework.messaging.support.GenericMessage.toString(GenericMessage.java:111)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:432)
Contributor guide
Research direction
Start with DefaultMessage.java at DefaultMessage.toString(), then trace the message through GenericMessage.toString() and AbstractMessageChannel.send() while reproducing receipt from the HTTP channel. The issue is resolved when concurrent message receipt no longer produces the reported ConcurrentModificationException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100