Originally discovered through analysis of http://forums.gradle.org/gradle/topics/proxy_error-1r4f6
There is a bug in HttpClient that prevents NTLM Authentication from functioning correctly when the 'http.keepAlive' System Property is set to false. (The default value for this property is true).
The bug manifests itself by causing NTLM authentication to fail even when correct credentials are provided.
This issue should be fixed in HttpClient 4.2.3. However, I think that our use of SystemDefaultHttpClient causes this value to be used by HttpClient. This class has been deprecated and we should probably switch to using DefaultHttpClient and reading any relevant System Properties explicitly.