[
https://issues.apache.org/jira/browse/LOG4J2-1990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16102940#comment-16102940
]
Ralph Goers commented on LOG4J2-1990:
-------------------------------------
The bottom line is that when this happens it is user error. We have documented
what we expect. The string that is in the process of being built is going to
contain garbage, so returning from this successfully doesn't seem right. In
this case I would put the try/catch in MutableLogEvent and print something like
the Message simple name and message format string when an exception occurs
along with writing a StatusLogger warning.
> ConcurrentModificationException logging a parameter of type Map
> ----------------------------------------------------------------
>
> Key: LOG4J2-1990
> URL: https://issues.apache.org/jira/browse/LOG4J2-1990
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.8.2
> Reporter: Philippe Mouawad
> Attachments: LOG4J2-1990.patch
>
>
> Hello,
> Working with current JMeter trunk and:
> * attached test plan
> * org.apache.jmeter.protocol.http.control.CacheManager level set to debug in
> log4j2.xml in bin folder
> I get:
> {code:none}
> java.util.concurrent.ExecutionException:
> java.util.ConcurrentModificationException
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> ~[?:1.8.0_121]
> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> ~[?:1.8.0_121]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.downloadPageResources(HTTPSamplerBase.java:1349)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.resultProcessing(HTTPSamplerBase.java:1657)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPAbstractImpl.resultProcessing(HTTPAbstractImpl.java:519)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:534)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178)
> [ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:500)
> [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:425)
> [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254)
> [ApacheJMeter_core.jar:3.3-SNAPSHOT.20170724]
> at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
> Caused by: java.util.ConcurrentModificationException
> at
> org.apache.commons.collections.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:560)
> ~[commons-collections-3.2.2.jar:3.2.2]
> at
> org.apache.commons.collections.map.AbstractLinkedMap$EntrySetIterator.next(AbstractLinkedMap.java:428)
> ~[commons-collections-3.2.2.jar:3.2.2]
> at
> org.apache.logging.log4j.message.ParameterFormatter.appendMap(ParameterFormatter.java:569)
> ~[log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.message.ParameterFormatter.appendPotentiallyRecursiveValue(ParameterFormatter.java:505)
> ~[log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.message.ParameterFormatter.recursiveDeepToString(ParameterFormatter.java:432)
> ~[log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.message.ParameterFormatter.formatMessage2(ParameterFormatter.java:189)
> ~[log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.message.ReusableParameterizedMessage.formatTo(ReusableParameterizedMessage.java:313)
> ~[log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.core.impl.MutableLogEvent.setMessage(MutableLogEvent.java:214)
> ~[log4j-core-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.core.impl.ReusableLogEventFactory.createEvent(ReusableLogEventFactory.java:81)
> ~[log4j-core-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:401)
> [log4j-core-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
> [log4j-core-2.8.2.jar:2.8.2]
> at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)
> [log4j-core-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2091)
> [log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2005)
> [log4j-api-2.8.2.jar:2.8.2]
> at
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1876)
> [log4j-api-2.8.2.jar:2.8.2]
> at org.apache.logging.slf4j.Log4jLogger.debug(Log4jLogger.java:124)
> [log4j-slf4j-impl-2.8.2.jar:2.8.2]
> at
> org.apache.jmeter.protocol.http.control.CacheManager.getEntry(CacheManager.java:501)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.control.CacheManager.inCache(CacheManager.java:431)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:443)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase$ASyncSample.call(HTTPSamplerBase.java:2031)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at
> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase$ASyncSample.call(HTTPSamplerBase.java:1)
> ~[ApacheJMeter_http.jar:3.3-SNAPSHOT.20170724]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> ~[?:1.8.0_121]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> ~[?:1.8.0_121]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> ~[?:1.8.0_121]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> ~[?:1.8.0_121]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> ~[?:1.8.0_121]
> ... 1 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)