[jira] [Updated] (CXF-9035) Fix java.util.ConcurrentModificationException at org.apache.cxf.message.MessageImpl.calcContextCache

2024-07-10 Thread Andriy Redko (Jira)


 [ 
https://issues.apache.org/jira/browse/CXF-9035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andriy Redko updated CXF-9035:
--
Fix Version/s: 3.5.10
   3.6.5
   4.0.6
   (was: 3.5.9)
   (was: 4.0.5)
   (was: 3.6.4)

> 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.calcCon

[jira] [Updated] (CXF-8950) HttpClient in CXF closing prematurely; 4.0.4-SNAPSHOT

2024-07-10 Thread Andriy Redko (Jira)


 [ 
https://issues.apache.org/jira/browse/CXF-8950?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andriy Redko updated CXF-8950:
--
Fix Version/s: 3.6.5
   4.0.6
   (was: 4.0.5)
   (was: 3.6.4)

> HttpClient in CXF closing prematurely; 4.0.4-SNAPSHOT
> -
>
> Key: CXF-8950
> URL: https://issues.apache.org/jira/browse/CXF-8950
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-RS
>Affects Versions: 4.0.3, 4.0.4
>Reporter: Sebastian Violet
>Assignee: Daniel Kulp
>Priority: Critical
> Fix For: 3.6.5, 4.0.6
>
> Attachments: CXF-HTTPClient-LargePayload.zip
>
>
> When processing requests using the JAX RS client which used the new 
> HttpClient, there is the input stream is closed prematurely.
>  
> [^CXF-HTTPClient-LargePayload.zip] , you will see that we are using 
> {*}Response{*}, because we are interested in getting response status as well 
> as the response headers. This fails with the following error:
> {code:java}
> Exception in thread "main" java.lang.RuntimeException: java.io.IOException: 
> closed
>     at LargeDataTester.main(LargeDataTester.java:89)
> Caused by: java.io.IOException: closed
>     at 
> java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.current(ResponseSubscribers.java:448)
>     at 
> java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.read(ResponseSubscribers.java:508)
>     at java.base/java.io.FilterInputStream.read(FilterInputStream.java:119)
>     at 
> org.apache.cxf.transport.http.HttpClientHTTPConduit$HttpClientFilteredInputStream.read(HttpClientHTTPConduit.java:422)
>     at 
> java.base/java.io.SequenceInputStream.read(SequenceInputStream.java:197)
>     at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:333)
>     at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:376)
>     at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:219)
>     at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:173)
>     at java.base/java.io.InputStreamReader.read(InputStreamReader.java:189)
>     at java.base/java.io.Reader.read(Reader.java:265)
>     at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1610)
>     at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1589)
>     at org.apache.commons.io.IOUtils.copy(IOUtils.java:1384)
>     at org.apache.commons.io.IOUtils.copy(IOUtils.java:1153)
>     at org.apache.commons.io.IOUtils.toString(IOUtils.java:3105)
>     at LargeDataTester.main(LargeDataTester.java:84)
> Caused by: java.io.IOException: selector manager closed
>     at 
> java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.selectorClosedException(HttpClientImpl.java:1061)
>     at 
> java.net.http/jdk.internal.net.http.HttpClientImpl.closeSubscribers(HttpClientImpl.java:552)
>     at 
> java.net.http/jdk.internal.net.http.HttpClientImpl.stop(HttpClientImpl.java:543)
>     at 
> java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.shutdown(HttpClientImpl.java:1165)
>     at 
> java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1364)
>  {code}
>  
> {color:#FF}*You can execute the code like so:*{color}
> {code:java}
> mvn compile exec:exec{code}
> ℹ️ {*}Note{*}: You can do a diff between what works(Letting CXF deserialize 
> the object response payload automatically), and the last commit(Using 
> Response).
> {code:java}
> git diff HEAD^ HEAD {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)