[ https://issues.apache.org/jira/browse/CXF-9035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17885874#comment-17885874 ]
Christian Mattar commented on CXF-9035: --------------------------------------- The LoggingFeature is installing {{org.apache.cxf.ext.logging.LoggingInInterceptor}} which does this: {noformat} message.put(LIVE_LOGGING_PROP, Boolean.FALSE);{noformat} The LocalConduit, which is used here, uses some kind of Multi-Threading setup to run the Interceptors concurrently to normal message processing. This leads to the exception you are seeing. There's some explicit checking in LocalConduit to not run them using a synchronous executor. Doing so deadlocks the message processing. > Fix java.util.ConcurrentModificationException at > org.apache.cxf.message.MessageImpl.calcContextCache > ---------------------------------------------------------------------------------------------------- > > Key: CXF-9035 > URL: https://issues.apache.org/jira/browse/CXF-9035 > Project: CXF > Issue Type: Bug > Affects Versions: 3.5.8, 3.6.3, 4.0.4 > Reporter: Andriy Redko > Assignee: Andriy Redko > Priority: Major > Fix For: 3.5.10, 3.6.5, 4.0.6 > > > {noformat} > org.apache.cxf.jaxrs.client.logging.RESTLoggingTest.testBinary > Failing for the past 1 build (Since > #1182 ) > Took 22 ms. > Error MessageProblem with reading the data, class java.io.InputStream, > ContentType: > application/octet-stream.Stacktracejakarta.ws.rs.client.ResponseProcessingException: > Problem with reading the data, class java.io.InputStream, ContentType: > application/octet-stream. > at > org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:553) > at > org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:495) > at > org.apache.cxf.jaxrs.client.AbstractClient.readBody(AbstractClient.java:566) > at > org.apache.cxf.jaxrs.client.WebClient.handleResponse(WebClient.java:1172) > at org.apache.cxf.jaxrs.client.WebClient.doResponse(WebClient.java:1160) > at > org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1086) > at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:931) > at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:900) > at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:460) > at org.apache.cxf.jaxrs.client.WebClient.get(WebClient.java:640) > at > org.apache.cxf.jaxrs.client.logging.RESTLoggingTest.testBinary(RESTLoggingTest.java:70) > at > java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) > at > org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) > at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) > at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) > at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) > at org.junit.runners.ParentRunner.run(ParentRunner.java:413) > at > org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214) > at > org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) > at > org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) > at > org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) > Caused by: java.util.ConcurrentModificationException > at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1605) > at java.base/java.util.HashMap$EntryIterator.next(HashMap.java:1638) > at java.base/java.util.HashMap$EntryIterator.next(HashMap.java:1636) > at java.base/java.util.HashMap.putMapEntries(HashMap.java:519) > at java.base/java.util.HashMap.putAll(HashMap.java:791) > at > org.apache.cxf.message.MessageImpl.calcContextCache(MessageImpl.java:216) > at > org.apache.cxf.message.MessageImpl.getContextualProperty(MessageImpl.java:179) > at > org.apache.cxf.message.MessageUtils.getContextualBoolean(MessageUtils.java:153) > at > org.apache.cxf.jaxrs.impl.HttpHeadersImpl.getRequestHeaders(HttpHeadersImpl.java:210) > at > org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1610) > at > org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:474) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)