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();