Details
Description
If a clientConfig parameter is defined for an ahc endpoint, a new cookie store will be created on the endpoint, regardless of the configuration set to the clientConfig parameter.
This makes it impossible to have an endpoint without a cookie store, when this parameter is set (which also means that the clientConfig parameter and the cookieHandler paramter do not work together).
The root cause for this issue is that AhcComponent.cloneConfig() is called at several places in the code to create a configuration builder from the provided configuration. This method is calling new DefaultAsyncHttpClientConfig.Builder(clientConfig), to create that new builder, but this call will create a new cookie store on each invocation and provide it to the new builder. This means even if the cookie store is set to null in the provided configuration the client for the endpoint will be created with a cloned configuration, which will then have a new cookie store.