[ https://issues.apache.org/jira/browse/CXF-8992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17931677#comment-17931677 ]
Andriy Redko edited comment on CXF-8992 at 3/1/25 4:15 PM: ----------------------------------------------------------- The fix introduces ClientConfiguration referencing (since implementing the deep copy of it is quite difficult), the new bus property `{color:#000000}use.configuration.reference.when.copy{color}` ({*}true{*} by default) allows to circumvent the referencing mechanism by falling back to sharing the configuration (leading to this issue). was (Author: reta): The fix introduces ClientConfiguration referencing (since implementing the deep copy of is quite difficult), the new bus property `{color:#000000}{color:#2a00ff}use.configuration.reference.when.copy{color}{color}` ({*}true{*} by default) allows to circumvent the referencing mechanism by falling back to sharing the configuration (leading to this issue). > WebClient.fromClient() broken due to garbage collection > ------------------------------------------------------- > > Key: CXF-8992 > URL: https://issues.apache.org/jira/browse/CXF-8992 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 4.0.4 > Reporter: Dennis > Assignee: Andriy Redko > Priority: Major > Fix For: 3.5.11, 3.6.6, 4.0.7, 4.1.1 > > > The following code throws an exception, probably because when one WebClient > instance is finalized, it also closes its transport, which is reused by other > instances. > For URLs that don’t use HTTP2, a timeout exception is thrown instead, > probably due to the same reason. > Is this a bug or am I using it incorrectly? > {code:java} > WebClient c = WebClient.create("https://www.google.com"); > > System.out.println(WebClient.fromClient(c).get().getStatus()); > System.gc(); > > // java.io.EOFException: EOFException invoking https://www.google.com: HTTP/2 > client stopped > System.out.println(WebClient.fromClient(c).get().getStatus()); > {code} > The same can also be reproduced using JAX RS WebTarget API: > {code:java} > WebTarget webTarget = > ClientBuilder.newClient().target("https://www.google.com"); > System.out.println(webTarget.request().get().getStatus()); > System.gc(); > // java.io.EOFException: EOFException invoking https://www.google.com: HTTP/2 > client stopped > System.out.println(webTarget.request().get().getStatus()); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)