New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multithreaded Selectors throw a ConcurrentModificationException. #82

Closed
badping opened this Issue Mar 11, 2016 · 0 comments

Comments

Projects
None yet
1 participant
@badping

badping commented Mar 11, 2016

Die Fehlermeldung sagt, dass Citrus die "headers" collection in der Zeile modifiziert während sie gerade kopiert wird.

Soweit ich sehe modifiziert die Methode "setHeader" genau diese Collection.

Der ChannelConsumer ruft die "convertInboud" Methode (ChannelMessageConverter) auf nach dem eine Nachricht received wurde, und ruft dort wiederum die "setHeader" Methode auf.
D.h. der eine Thread hat die Message received und der andere kopiert gerade die Header.

java.util.ConcurrentModificationException

    at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:394)

    at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:413)

    at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:412)

    at java.util.HashMap.putAll(HashMap.java:621)

    at com.consol.citrus.message.DefaultMessage.copyHeaders(DefaultMessage.java:204)

    at com.consol.citrus.channel.selector.HeaderMatchingMessageSelector.accept(HeaderMatchingMessageSelector.java:51)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment