[ 
https://issues.apache.org/jira/browse/LOG4J2-416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13793573#comment-13793573
 ] 

Remko Popma commented on LOG4J2-416:
------------------------------------

Dimitry, anyone else, what is your thinking on this?
I am unsure how to make progress with this ticket.

> ConcurrentModificationException when logging maps that are being worked on
> --------------------------------------------------------------------------
>
>                 Key: LOG4J2-416
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-416
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 2.0-beta9
>            Reporter: Dimitry Declercq
>
> We run a multi-thread application which logs Maps, after log.debug(map) we 
> continue to add items to the map, resulting in a 
> ConcurrentModificationException on the logging side.
> e.g
> thread1 adds 4 items to the map
> thread1 logs the map 
> thread2 receives map and adds 2 extra items
> thread2 logs the map as well (not needed to trigger this issue)
> The logging of the map in thread 1 will sometimes fail with a 
> ConcurrentModificationException.
> This is solved by logging a copy instead of the working variable, but I think 
> it would be good if Log4J does this out of the box
> Stacktrace:
> Exception in thread "Thread-38" java.util.ConcurrentModificationException
>         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:934)
>         at java.util.HashMap$EntryIterator.next(HashMap.java:932)
>         at 
> org.apache.logging.log4j.message.ParameterizedMessage.recursiveDeepToString(ParameterizedMessage.java:463)
>         at 
> org.apache.logging.log4j.message.ParameterizedMessage.deepToString(ParameterizedMessage.java:378)
>         at 
> org.apache.logging.log4j.message.ParameterizedMessage.parseArguments(ParameterizedMessage.java:164)
>         at 
> org.apache.logging.log4j.message.ParameterizedMessage.<init>(ParameterizedMessage.java:117)
>         at 
> org.apache.logging.log4j.message.ParameterizedMessage.<init>(ParameterizedMessage.java:126)
>         at org.slf4j.impl.SLF4JLogger.debug(SLF4JLogger.java:145)
>         at 
> com.lynx.api.rest.service.PriceResource.getPrice(PriceResource.java:74)
>         at 
> com.lynx.api.rest.service.PriceResourceTest$1.run(PriceResourceTest.java:166)
>         at java.lang.Thread.run(Thread.java:722)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to