Arun Katkere created HTTPCLIENT-2278:
----------------------------------------
Summary: SSLIOSession should catch UnsupportedOperationException
from SSLEngine.getApplicationProtocol
Key: HTTPCLIENT-2278
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2278
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient (async)
Affects Versions: 5.2.1
Reporter: Arun Katkere
When SSLEngine implementation is old and does not override
getApplicationProtocol from SSLEngine, HttpClient async fails with:
java.lang.UnsupportedOperationException
at javax.net.ssl.SSLEngine.getApplicationProtocol(SSLEngine.java:1283)
at
org.apache.hc.core5.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:429)
at org.apache.hc.core5.reactor.ssl.SSLIOSession.access$100(SSLIOSession.java:74)
at
org.apache.hc.core5.reactor.ssl.SSLIOSession$1.inputReady(SSLIOSession.java:201)
at
org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:142)
at
org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:51)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.processEvents(SingleCoreIOReactor.java:178)
at
org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:127)
at
org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:86)
at org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44)
at java.lang.Thread.run(Thread.java:750)
Instead, SSLIOSession should catch UnsupportedOperationException from
getApplicationProtocol call and fall back to HTTP1_1. getApplicationProtocol
was added in a later version of Java 8, and not all SSL libraries support it.
tlsDetailsFactory from DefaultClientTlsStrategy can be potentially used to work
around this, but it is deprecate for unknown reason.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]