[ https://issues.apache.org/jira/browse/CXF-8946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17777483#comment-17777483 ]
Sebastian Violet commented on CXF-8946: --------------------------------------- I even tried to use a new RetryTemplate per call, but the leak is still there: {code} diff --git a/src/main/java/com/memoryleak/demo/jaxrs/StatusClientImpl.java b/src/main/java/com/memoryleak/demo/jaxrs/StatusClientImpl.java index 2d2f04f..ea968e6 100644 --- a/src/main/java/com/memoryleak/demo/jaxrs/StatusClientImpl.java +++ b/src/main/java/com/memoryleak/demo/jaxrs/StatusClientImpl.java @@ -27,13 +27,17 @@ public class StatusClientImpl implements StatusClient { @Builder.Default @NonNull - private RetryTemplate retryTemplate = RetryTemplate.builder() - .maxAttempts(1) - .noBackoff() - .build(); //No retries + private RetryTemplate retryTemplate = getRetryTemplate(); //No retries + + private static RetryTemplate getRetryTemplate() { + return RetryTemplate.builder() + .maxAttempts(1) + .noBackoff() + .build(); + } private <T> T doWithRetry(Function<StatusClient, T> functionToRetry) { - return this.doWithRetry(functionToRetry, this.retryTemplate); + return this.doWithRetry(functionToRetry, this.getRetryTemplate()); } private <T> T doWithRetry(Function<StatusClient, T> functionToRetry, RetryTemplate templateToUse) { {code} > HttpClient in CXF causing memory leak > ------------------------------------- > > Key: CXF-8946 > URL: https://issues.apache.org/jira/browse/CXF-8946 > Project: CXF > Issue Type: Bug > Components: JAX-RS > Affects Versions: 4.0.3 > Reporter: Sebastian Violet > Priority: Major > Attachments: CXF-HTTPClient-MemoryLeak.zip, Screenshot 2023-10-19 at > 2.29.56 PM.png, java_pid17394.hprof.zip, java_pid17394_Leak_Suspects.zip, > java_pid91652.0001.hprof.zip, java_pid91652.0001_Leak_Suspects.zip, > memory-leak-demo.zip > > > When processing requests using the JAX RS client which used the new > HttpClient, there is a memory leak. > We found this when running it in spring boot using > {code:java} > @Async{code} > > I have tried to reproduce it using the attached code, and it seems to work > with a low heap size. > > You can execute the code like so: > {code:java} > mvn compile exec:exec{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)