Mark Anderson created CXF-5327: ---------------------------------- Summary: Memory leak if SSLException occurs in FailoverTargetSelector.complete() Key: CXF-5327 URL: https://issues.apache.org/jira/browse/CXF-5327 Project: CXF Issue Type: Bug Affects Versions: 2.6.10 Reporter: Mark Anderson
When using failover with a sequential strategy and https there is a memory leak if an SSLException is thrown in FailoverTargetSelector.complete(). The exception being thrown results in the key never being removed from the inProgress map. An example stack trace is given below: org.apache.cxf.interceptor.Fault: Could not send Message. [java] at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) [java] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [java] at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565) [java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) [java] at org.apache.cxf.clustering.FailoverTargetSelector.complete(FailoverTargetSelector.java:150) [java] at org.apache.cxf.endpoint.ClientImpl.processResult(ClientImpl.java:626) [java] at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:574) [java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) [java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) [java] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) [java] at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [java] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:136) [java] at com.sun.proxy.$Proxy159.version(Unknown Source) [java] <snip> [java] Caused by: javax.net.ssl.SSLException: SSLException invoking https://localhost:24750/ws-consumer/osc: Unrecognized SSL message, plaintext connection? [java] at sun.reflect.GeneratedConstructorAccessor94.newInstance(Unknown Source) [java] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [java] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [java] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1474) [java] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1459) [java] at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [java] at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:660) [java] at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) [java] ... 23 more [java] Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? [java] at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:671) [java] at sun.security.ssl.InputRecord.read(InputRecord.java:504) [java] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) [java] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) [java] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) [java] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) [java] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) [java] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) [java] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091) [java] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) [java] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1403) [java] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1347) [java] at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) [java] at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) [java] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1431) [java] ... 26 more -- This message was sent by Atlassian JIRA (v6.1#6144)