This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch 4.0.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/4.0.x-fixes by this push:
     new 9179a7a2cf [CXF-9095]Connection Leak in HttpClientWrappedOutputStream 
due to Unreleased Resources on IOException
9179a7a2cf is described below

commit 9179a7a2cf3bc3bdd3ccc50327cb15007f3d0788
Author: Freeman Fang <[email protected]>
AuthorDate: Mon Jan 27 13:17:28 2025 -0500

    [CXF-9095]Connection Leak in HttpClientWrappedOutputStream due to 
Unreleased Resources on IOException
    
    (cherry picked from commit e4fb9d2be13fd1a2824a645a23a8e18242fd6b66)
---
 .../cxf/transport/http/HttpClientHTTPConduit.java  | 33 +++++++++++++++-------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
index f3190348d9..82d469e86e 100644
--- 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
+++ 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
@@ -821,17 +821,30 @@ public class HttpClientHTTPConduit extends 
URLConnectionHTTPConduit {
 
         @Override
         public void close() throws IOException {
-            super.close();
-            if (pout != null) {
-                pout.close();
-                pout = null;
-            }
-            if (publisher != null) {
-                publisher.close();
-                publisher = null;
+            try {
+                super.close();
+            } finally {
+                if (pout != null) {
+                    try {
+                        pout.close();
+                    } catch (IOException e) {
+                        logStackTrace(e);
+                    }
+                    pout = null;
+                }
+                if (publisher != null) {
+                    try {
+                        publisher.close();
+                    } catch (IOException e) {
+                        logStackTrace(e);
+                    }
+                    publisher = null;
+                }
+                request = null;
+                subscribers = null;
             }
-            request = null;
-            subscribers = null;
+            
+            
         }
         void addSubscriber(Flow.Subscriber<? super ByteBuffer> subscriber) {
             subscribers.add(subscriber);

Reply via email to