On Fri, 2014-09-05 at 19:51 +0400, Dmitry Potapov wrote:
> Hello everyone,
> 
> I've tried to update httpclient and httpasyncclient to latest revisions and 
> got the following exception:
> org.apache.http.HttpException: Unsupported cookie policy: default
>         at 
> org.apache.http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:151)
>         at 
> org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:132)
>         at 
> org.apache.http.impl.nio.client.MainClientExec.prepareRequest(MainClientExec.java:553)
>         at 
> org.apache.http.impl.nio.client.MainClientExec.prepare(MainClientExec.java:156)
>         at 
> org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:125)
>         at 
> org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:128)
> 
> This is caused by r1620939 (Replaced BEST_MATCH with DEFAULT policy) at 
> httpclient:
> HttpClientBuilder registers DEFAULT policy in CookieSpecProvider while 
> HttpAsyncClientBuilder doesn't know about DEFAULT policy, which leads to 
> exception in RequestAddCookies.
> I understand perfectly well that trunk builds doesn't have to provide sane 
> behaviour, but it seems that next stable HttpClient release will be 
> incompatible with HttpAsyncClient 4.0, which seems pretty strange.
> 

Dmitry

This is the reason why HttpAsyncClient trunk depends on a specific
version of HttpClient and HttpClient rather than snapshots. Once
HttpClient 4.4b1 is released I'll upgrade HttpAsyncClient to it and will
fix incompatibilities.  

> Probably RequestAddCookies.process(...) should just return from function 
> instead of throwing exception on unknown cookie policy? i.e. apply patch like 
> this:
> 
> --- 
> httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
>      (revision 1622724)
> +++ 
> httpclient/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
>      (working copy)
> @@ -148,7 +148,11 @@
>          // Get an instance of the selected cookie policy
>          final CookieSpecProvider provider = registry.lookup(policy);
>          if (provider == null) {
> -            throw new HttpException("Unsupported cookie policy: " + policy);
> +            if (this.log.isDebugEnabled()) {
> +                this.log.debug("Unsupported cookie policy: " + policy);
> +            }
> +
> +            return;
>          }
>          final CookieSpec cookieSpec = provider.create(clientContext);
>          // Get all cookies available in the HTTP state
> 

Makes sense. Feel free to open a pull request at github.

Oleg



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to