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

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

commit eccc7e35ad256694be64c05e115c0de8038612da
Author: Daniel Kulp <d...@kulp.com>
AuthorDate: Wed Aug 30 12:28:20 2023 -0400

    Add system properly to force use of older URLConnection
    
    (cherry picked from commit 3d70de80fb60b74040c0214fc6a28774362556e4)
---
 .../org/apache/cxf/transport/http/HTTPTransportFactory.java  | 11 +++++++++--
 .../org/apache/cxf/transport/http/HttpClientHTTPConduit.java | 12 +++++++-----
 .../apache/cxf/transport/http/URLConnectionHTTPConduit.java  |  7 -------
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
index f13e236425..40d42c8e31 100644
--- 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
+++ 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPTransportFactory.java
@@ -37,6 +37,7 @@ import java.util.logging.Logger;
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.injection.NoJSR250Annotations;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.util.SystemPropertyAction;
 import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingInfo;
@@ -84,6 +85,9 @@ public class HTTPTransportFactory
     private final ReadWriteLock lock = new ReentrantReadWriteLock();
     private final Lock r = lock.readLock();
     private final Lock w = lock.writeLock();
+    
+    private boolean forceURLConnectionConduit 
+        = 
Boolean.valueOf(SystemPropertyAction.getProperty("org.apache.cxf.transport.http.forceURLConnection"));
 
     public HTTPTransportFactory() {
         this(new DestinationRegistryImpl());
@@ -233,8 +237,11 @@ public class HTTPTransportFactory
             conduit = factory.createConduit(this, bus, endpointInfo, target);
         }
         if (conduit == null) {
-            //conduit = new URLConnectionHTTPConduit(bus, endpointInfo, 
target);
-            conduit = new HttpClientHTTPConduit(bus, endpointInfo, target);
+            if (forceURLConnectionConduit) {
+                conduit = new URLConnectionHTTPConduit(bus, endpointInfo, 
target);
+            } else {
+                conduit = new HttpClientHTTPConduit(bus, endpointInfo, target);
+            }
         }
 
         // Spring configure the conduit.
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 44c5785ca8..b40b6904dc 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
@@ -90,10 +90,6 @@ public class HttpClientHTTPConduit extends 
URLConnectionHTTPConduit {
     volatile HttpClient client;
     volatile int lastTlsHash = -1;
     volatile URI sslURL;
-    
-    public HttpClientHTTPConduit(Bus b, EndpointInfo ei) throws IOException {
-        super(b, ei);
-    }
 
     public HttpClientHTTPConduit(Bus b, EndpointInfo ei, EndpointReferenceType 
t) throws IOException {
         super(b, ei, t);
@@ -115,7 +111,13 @@ public class HttpClientHTTPConduit extends 
URLConnectionHTTPConduit {
      * Close the conduit
      */
     public void close() {
-        if (client != null) {
+        if (client instanceof AutoCloseable) {
+            try {
+                ((AutoCloseable)client).close();
+            } catch (Exception e) {
+                //ignore
+            }                
+        } else if (client != null) {
             String name = client.toString();
             client = null;
             tryToShutdownSelector(name);
diff --git 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
index e31b2c5782..028eaf950f 100644
--- 
a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
+++ 
b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
@@ -76,13 +76,6 @@ public class URLConnectionHTTPConduit extends HTTPConduit {
      */
     protected HttpsURLConnectionFactory connectionFactory;
 
-
-    public URLConnectionHTTPConduit(Bus b, EndpointInfo ei) throws IOException 
{
-        super(b, ei);
-        connectionFactory = new HttpsURLConnectionFactory();
-        CXFAuthenticator.addAuthenticator();
-    }
-
     public URLConnectionHTTPConduit(Bus b, EndpointInfo ei, 
EndpointReferenceType t) throws IOException {
         super(b, ei, t);
         connectionFactory = new HttpsURLConnectionFactory();

Reply via email to