You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2020/06/12 09:24:38 UTC

svn commit: r1878766 [43/46] - in /httpcomponents/site: ./ httpcomponents-client-5.0.x/ httpcomponents-client-5.0.x/httpclient5-cache/ httpcomponents-client-5.0.x/httpclient5-cache/apidocs/ httpcomponents-client-5.0.x/httpclient5-cache/apidocs/org/apac...

Modified: httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.html
URL: http://svn.apache.org/viewvc/httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.html?rev=1878766&r1=1878765&r2=1878766&view=diff
==============================================================================
--- httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.html (original)
+++ httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.html Fri Jun 12 09:24:26 2020
@@ -879,143 +879,141 @@
 <a class="jxr_linenumber" name="L871" href="#L871">871</a>             }
 <a class="jxr_linenumber" name="L872" href="#L872">872</a>         }
 <a class="jxr_linenumber" name="L873" href="#L873">873</a> 
-<a class="jxr_linenumber" name="L874" href="#L874">874</a>         <em class="jxr_comment">// Add redirect executor, if not disabled</em>
-<a class="jxr_linenumber" name="L875" href="#L875">875</a>         <strong class="jxr_keyword">if</strong> (!redirectHandlingDisabled) {
-<a class="jxr_linenumber" name="L876" href="#L876">876</a>             <a name="RedirectStrategy" href="../../../../../../../org/apache/hc/client5/http/protocol/RedirectStrategy.html#RedirectStrategy">RedirectStrategy</a> redirectStrategyCopy = <strong class="jxr_keyword">this</strong>.redirectStrategy;
-<a class="jxr_linenumber" name="L877" href="#L877">877</a>             <strong class="jxr_keyword">if</strong> (redirectStrategyCopy == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L878" href="#L878">878</a>                 redirectStrategyCopy = DefaultRedirectStrategy.INSTANCE;
-<a class="jxr_linenumber" name="L879" href="#L879">879</a>             }
-<a class="jxr_linenumber" name="L880" href="#L880">880</a>             execChainDefinition.addFirst(
-<a class="jxr_linenumber" name="L881" href="#L881">881</a>                     <strong class="jxr_keyword">new</strong> <a name="RedirectExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/RedirectExec.html#RedirectExec">RedirectExec</a>(routePlannerCopy, redirectStrategyCopy),
-<a class="jxr_linenumber" name="L882" href="#L882">882</a>                     ChainElement.REDIRECT.name());
-<a class="jxr_linenumber" name="L883" href="#L883">883</a>         }
-<a class="jxr_linenumber" name="L884" href="#L884">884</a> 
-<a class="jxr_linenumber" name="L885" href="#L885">885</a>         <strong class="jxr_keyword">if</strong> (!contentCompressionDisabled) {
-<a class="jxr_linenumber" name="L886" href="#L886">886</a>             <strong class="jxr_keyword">if</strong> (contentDecoderMap != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L887" href="#L887">887</a>                 <strong class="jxr_keyword">final</strong> List&lt;String&gt; encodings = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(contentDecoderMap.keySet());
-<a class="jxr_linenumber" name="L888" href="#L888">888</a>                 <strong class="jxr_keyword">final</strong> RegistryBuilder&lt;InputStreamFactory&gt; b2 = RegistryBuilder.create();
-<a class="jxr_linenumber" name="L889" href="#L889">889</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, InputStreamFactory&gt; entry: contentDecoderMap.entrySet()) {
-<a class="jxr_linenumber" name="L890" href="#L890">890</a>                     b2.register(entry.getKey(), entry.getValue());
-<a class="jxr_linenumber" name="L891" href="#L891">891</a>                 }
-<a class="jxr_linenumber" name="L892" href="#L892">892</a>                 <strong class="jxr_keyword">final</strong> Registry&lt;InputStreamFactory&gt; decoderRegistry = b2.build();
-<a class="jxr_linenumber" name="L893" href="#L893">893</a>                 execChainDefinition.addFirst(
-<a class="jxr_linenumber" name="L894" href="#L894">894</a>                         <strong class="jxr_keyword">new</strong> <a name="ContentCompressionExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ContentCompressionExec.html#ContentCompressionExec">ContentCompressionExec</a>(encodings, decoderRegistry, <strong class="jxr_keyword">true</strong>),
-<a class="jxr_linenumber" name="L895" href="#L895">895</a>                         ChainElement.REDIRECT.name());
-<a class="jxr_linenumber" name="L896" href="#L896">896</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L897" href="#L897">897</a>                 execChainDefinition.addFirst(
-<a class="jxr_linenumber" name="L898" href="#L898">898</a>                         <strong class="jxr_keyword">new</strong> <a name="ContentCompressionExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ContentCompressionExec.html#ContentCompressionExec">ContentCompressionExec</a>(<strong class="jxr_keyword">true</strong>),
-<a class="jxr_linenumber" name="L899" href="#L899">899</a>                         ChainElement.REDIRECT.name());
-<a class="jxr_linenumber" name="L900" href="#L900">900</a>             }
-<a class="jxr_linenumber" name="L901" href="#L901">901</a>         }
-<a class="jxr_linenumber" name="L902" href="#L902">902</a> 
-<a class="jxr_linenumber" name="L903" href="#L903">903</a>         <em class="jxr_comment">// Optionally, add connection back-off executor</em>
-<a class="jxr_linenumber" name="L904" href="#L904">904</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.backoffManager != <strong class="jxr_keyword">null</strong> &amp;&amp; <strong class="jxr_keyword">this</strong>.connectionBackoffStrategy != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L905" href="#L905">905</a>             execChainDefinition.addFirst(<strong class="jxr_keyword">new</strong> <a name="BackoffStrategyExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/BackoffStrategyExec.html#BackoffStrategyExec">BackoffStrategyExec</a>(<strong class="jxr_keyword">this</strong>.connectionBackoffStrategy, <strong class="jxr_keyword">this</strong>.backoffManager),
-<a class="jxr_linenumber" name="L906" href="#L906">906</a>                     ChainElement.BACK_OFF.name());
-<a class="jxr_linenumber" name="L907" href="#L907">907</a>         }
-<a class="jxr_linenumber" name="L908" href="#L908">908</a> 
-<a class="jxr_linenumber" name="L909" href="#L909">909</a>         <strong class="jxr_keyword">if</strong> (execInterceptors != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L910" href="#L910">910</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> ExecInterceptorEntry entry: execInterceptors) {
-<a class="jxr_linenumber" name="L911" href="#L911">911</a>                 <strong class="jxr_keyword">switch</strong> (entry.postion) {
-<a class="jxr_linenumber" name="L912" href="#L912">912</a>                     <strong class="jxr_keyword">case</strong> AFTER:
-<a class="jxr_linenumber" name="L913" href="#L913">913</a>                         execChainDefinition.addAfter(entry.existing, entry.interceptor, entry.name);
-<a class="jxr_linenumber" name="L914" href="#L914">914</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L915" href="#L915">915</a>                     <strong class="jxr_keyword">case</strong> BEFORE:
-<a class="jxr_linenumber" name="L916" href="#L916">916</a>                         execChainDefinition.addBefore(entry.existing, entry.interceptor, entry.name);
-<a class="jxr_linenumber" name="L917" href="#L917">917</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L918" href="#L918">918</a>                     <strong class="jxr_keyword">case</strong> REPLACE:
-<a class="jxr_linenumber" name="L919" href="#L919">919</a>                         execChainDefinition.replace(entry.existing, entry.interceptor);
-<a class="jxr_linenumber" name="L920" href="#L920">920</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L921" href="#L921">921</a>                     <strong class="jxr_keyword">case</strong> FIRST:
-<a class="jxr_linenumber" name="L922" href="#L922">922</a>                         execChainDefinition.addFirst(entry.interceptor, entry.name);
-<a class="jxr_linenumber" name="L923" href="#L923">923</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L924" href="#L924">924</a>                     <strong class="jxr_keyword">case</strong> LAST:
-<a class="jxr_linenumber" name="L925" href="#L925">925</a>                         execChainDefinition.addLast(entry.interceptor, entry.name);
-<a class="jxr_linenumber" name="L926" href="#L926">926</a>                         <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L927" href="#L927">927</a>                 }
-<a class="jxr_linenumber" name="L928" href="#L928">928</a>             }
-<a class="jxr_linenumber" name="L929" href="#L929">929</a>         }
+<a class="jxr_linenumber" name="L874" href="#L874">874</a>         <strong class="jxr_keyword">if</strong> (!contentCompressionDisabled) {
+<a class="jxr_linenumber" name="L875" href="#L875">875</a>             <strong class="jxr_keyword">if</strong> (contentDecoderMap != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L876" href="#L876">876</a>                 <strong class="jxr_keyword">final</strong> List&lt;String&gt; encodings = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(contentDecoderMap.keySet());
+<a class="jxr_linenumber" name="L877" href="#L877">877</a>                 <strong class="jxr_keyword">final</strong> RegistryBuilder&lt;InputStreamFactory&gt; b2 = RegistryBuilder.create();
+<a class="jxr_linenumber" name="L878" href="#L878">878</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, InputStreamFactory&gt; entry: contentDecoderMap.entrySet()) {
+<a class="jxr_linenumber" name="L879" href="#L879">879</a>                     b2.register(entry.getKey(), entry.getValue());
+<a class="jxr_linenumber" name="L880" href="#L880">880</a>                 }
+<a class="jxr_linenumber" name="L881" href="#L881">881</a>                 <strong class="jxr_keyword">final</strong> Registry&lt;InputStreamFactory&gt; decoderRegistry = b2.build();
+<a class="jxr_linenumber" name="L882" href="#L882">882</a>                 execChainDefinition.addFirst(
+<a class="jxr_linenumber" name="L883" href="#L883">883</a>                         <strong class="jxr_keyword">new</strong> <a name="ContentCompressionExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ContentCompressionExec.html#ContentCompressionExec">ContentCompressionExec</a>(encodings, decoderRegistry, <strong class="jxr_keyword">true</strong>),
+<a class="jxr_linenumber" name="L884" href="#L884">884</a>                         ChainElement.COMPRESS.name());
+<a class="jxr_linenumber" name="L885" href="#L885">885</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L886" href="#L886">886</a>                 execChainDefinition.addFirst(<strong class="jxr_keyword">new</strong> <a name="ContentCompressionExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ContentCompressionExec.html#ContentCompressionExec">ContentCompressionExec</a>(<strong class="jxr_keyword">true</strong>), ChainElement.COMPRESS.name());
+<a class="jxr_linenumber" name="L887" href="#L887">887</a>             }
+<a class="jxr_linenumber" name="L888" href="#L888">888</a>         }
+<a class="jxr_linenumber" name="L889" href="#L889">889</a> 
+<a class="jxr_linenumber" name="L890" href="#L890">890</a>         <em class="jxr_comment">// Add redirect executor, if not disabled</em>
+<a class="jxr_linenumber" name="L891" href="#L891">891</a>         <strong class="jxr_keyword">if</strong> (!redirectHandlingDisabled) {
+<a class="jxr_linenumber" name="L892" href="#L892">892</a>             <a name="RedirectStrategy" href="../../../../../../../org/apache/hc/client5/http/protocol/RedirectStrategy.html#RedirectStrategy">RedirectStrategy</a> redirectStrategyCopy = <strong class="jxr_keyword">this</strong>.redirectStrategy;
+<a class="jxr_linenumber" name="L893" href="#L893">893</a>             <strong class="jxr_keyword">if</strong> (redirectStrategyCopy == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L894" href="#L894">894</a>                 redirectStrategyCopy = DefaultRedirectStrategy.INSTANCE;
+<a class="jxr_linenumber" name="L895" href="#L895">895</a>             }
+<a class="jxr_linenumber" name="L896" href="#L896">896</a>             execChainDefinition.addFirst(
+<a class="jxr_linenumber" name="L897" href="#L897">897</a>                     <strong class="jxr_keyword">new</strong> <a name="RedirectExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/RedirectExec.html#RedirectExec">RedirectExec</a>(routePlannerCopy, redirectStrategyCopy),
+<a class="jxr_linenumber" name="L898" href="#L898">898</a>                     ChainElement.REDIRECT.name());
+<a class="jxr_linenumber" name="L899" href="#L899">899</a>         }
+<a class="jxr_linenumber" name="L900" href="#L900">900</a> 
+<a class="jxr_linenumber" name="L901" href="#L901">901</a>         <em class="jxr_comment">// Optionally, add connection back-off executor</em>
+<a class="jxr_linenumber" name="L902" href="#L902">902</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.backoffManager != <strong class="jxr_keyword">null</strong> &amp;&amp; <strong class="jxr_keyword">this</strong>.connectionBackoffStrategy != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L903" href="#L903">903</a>             execChainDefinition.addFirst(<strong class="jxr_keyword">new</strong> <a name="BackoffStrategyExec" href="../../../../../../../org/apache/hc/client5/http/impl/classic/BackoffStrategyExec.html#BackoffStrategyExec">BackoffStrategyExec</a>(<strong class="jxr_keyword">this</strong>.connectionBackoffStrategy, <strong class="jxr_keyword">this</strong>.backoffManager),
+<a class="jxr_linenumber" name="L904" href="#L904">904</a>                     ChainElement.BACK_OFF.name());
+<a class="jxr_linenumber" name="L905" href="#L905">905</a>         }
+<a class="jxr_linenumber" name="L906" href="#L906">906</a> 
+<a class="jxr_linenumber" name="L907" href="#L907">907</a>         <strong class="jxr_keyword">if</strong> (execInterceptors != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L908" href="#L908">908</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> ExecInterceptorEntry entry: execInterceptors) {
+<a class="jxr_linenumber" name="L909" href="#L909">909</a>                 <strong class="jxr_keyword">switch</strong> (entry.postion) {
+<a class="jxr_linenumber" name="L910" href="#L910">910</a>                     <strong class="jxr_keyword">case</strong> AFTER:
+<a class="jxr_linenumber" name="L911" href="#L911">911</a>                         execChainDefinition.addAfter(entry.existing, entry.interceptor, entry.name);
+<a class="jxr_linenumber" name="L912" href="#L912">912</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L913" href="#L913">913</a>                     <strong class="jxr_keyword">case</strong> BEFORE:
+<a class="jxr_linenumber" name="L914" href="#L914">914</a>                         execChainDefinition.addBefore(entry.existing, entry.interceptor, entry.name);
+<a class="jxr_linenumber" name="L915" href="#L915">915</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L916" href="#L916">916</a>                     <strong class="jxr_keyword">case</strong> REPLACE:
+<a class="jxr_linenumber" name="L917" href="#L917">917</a>                         execChainDefinition.replace(entry.existing, entry.interceptor);
+<a class="jxr_linenumber" name="L918" href="#L918">918</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L919" href="#L919">919</a>                     <strong class="jxr_keyword">case</strong> FIRST:
+<a class="jxr_linenumber" name="L920" href="#L920">920</a>                         execChainDefinition.addFirst(entry.interceptor, entry.name);
+<a class="jxr_linenumber" name="L921" href="#L921">921</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L922" href="#L922">922</a>                     <strong class="jxr_keyword">case</strong> LAST:
+<a class="jxr_linenumber" name="L923" href="#L923">923</a>                         execChainDefinition.addLast(entry.interceptor, entry.name);
+<a class="jxr_linenumber" name="L924" href="#L924">924</a>                         <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L925" href="#L925">925</a>                 }
+<a class="jxr_linenumber" name="L926" href="#L926">926</a>             }
+<a class="jxr_linenumber" name="L927" href="#L927">927</a>         }
+<a class="jxr_linenumber" name="L928" href="#L928">928</a> 
+<a class="jxr_linenumber" name="L929" href="#L929">929</a>         customizeExecChain(execChainDefinition);
 <a class="jxr_linenumber" name="L930" href="#L930">930</a> 
-<a class="jxr_linenumber" name="L931" href="#L931">931</a>         customizeExecChain(execChainDefinition);
-<a class="jxr_linenumber" name="L932" href="#L932">932</a> 
-<a class="jxr_linenumber" name="L933" href="#L933">933</a>         NamedElementChain&lt;ExecChainHandler&gt;.Node current = execChainDefinition.getLast();
-<a class="jxr_linenumber" name="L934" href="#L934">934</a>         <a name="ExecChainElement" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ExecChainElement.html#ExecChainElement">ExecChainElement</a> execChain = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L935" href="#L935">935</a>         <strong class="jxr_keyword">while</strong> (current != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L936" href="#L936">936</a>             execChain = <strong class="jxr_keyword">new</strong> <a name="ExecChainElement" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ExecChainElement.html#ExecChainElement">ExecChainElement</a>(current.getValue(), execChain);
-<a class="jxr_linenumber" name="L937" href="#L937">937</a>             current = current.getPrevious();
-<a class="jxr_linenumber" name="L938" href="#L938">938</a>         }
-<a class="jxr_linenumber" name="L939" href="#L939">939</a> 
-<a class="jxr_linenumber" name="L940" href="#L940">940</a>         Lookup&lt;AuthSchemeFactory&gt; authSchemeRegistryCopy = <strong class="jxr_keyword">this</strong>.authSchemeRegistry;
-<a class="jxr_linenumber" name="L941" href="#L941">941</a>         <strong class="jxr_keyword">if</strong> (authSchemeRegistryCopy == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L942" href="#L942">942</a>             authSchemeRegistryCopy = RegistryBuilder.&lt;AuthSchemeFactory&gt;create()
-<a class="jxr_linenumber" name="L943" href="#L943">943</a>                 .register(StandardAuthScheme.BASIC, BasicSchemeFactory.INSTANCE)
-<a class="jxr_linenumber" name="L944" href="#L944">944</a>                 .register(StandardAuthScheme.DIGEST, DigestSchemeFactory.INSTANCE)
-<a class="jxr_linenumber" name="L945" href="#L945">945</a>                 .register(StandardAuthScheme.NTLM, NTLMSchemeFactory.INSTANCE)
-<a class="jxr_linenumber" name="L946" href="#L946">946</a>                 .register(StandardAuthScheme.SPNEGO, SPNegoSchemeFactory.DEFAULT)
-<a class="jxr_linenumber" name="L947" href="#L947">947</a>                 .register(StandardAuthScheme.KERBEROS, KerberosSchemeFactory.DEFAULT)
-<a class="jxr_linenumber" name="L948" href="#L948">948</a>                 .build();
-<a class="jxr_linenumber" name="L949" href="#L949">949</a>         }
-<a class="jxr_linenumber" name="L950" href="#L950">950</a>         Lookup&lt;CookieSpecFactory&gt; cookieSpecRegistryCopy = <strong class="jxr_keyword">this</strong>.cookieSpecRegistry;
-<a class="jxr_linenumber" name="L951" href="#L951">951</a>         <strong class="jxr_keyword">if</strong> (cookieSpecRegistryCopy == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L952" href="#L952">952</a>             cookieSpecRegistryCopy = CookieSpecSupport.createDefault();
-<a class="jxr_linenumber" name="L953" href="#L953">953</a>         }
-<a class="jxr_linenumber" name="L954" href="#L954">954</a> 
-<a class="jxr_linenumber" name="L955" href="#L955">955</a>         <a name="CookieStore" href="../../../../../../../org/apache/hc/client5/http/cookie/CookieStore.html#CookieStore">CookieStore</a> defaultCookieStore = <strong class="jxr_keyword">this</strong>.cookieStore;
-<a class="jxr_linenumber" name="L956" href="#L956">956</a>         <strong class="jxr_keyword">if</strong> (defaultCookieStore == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L957" href="#L957">957</a>             defaultCookieStore = <strong class="jxr_keyword">new</strong> <a name="BasicCookieStore" href="../../../../../../../org/apache/hc/client5/http/cookie/BasicCookieStore.html#BasicCookieStore">BasicCookieStore</a>();
-<a class="jxr_linenumber" name="L958" href="#L958">958</a>         }
-<a class="jxr_linenumber" name="L959" href="#L959">959</a> 
-<a class="jxr_linenumber" name="L960" href="#L960">960</a>         <a name="CredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsProvider.html#CredentialsProvider">CredentialsProvider</a> defaultCredentialsProvider = <strong class="jxr_keyword">this</strong>.credentialsProvider;
-<a class="jxr_linenumber" name="L961" href="#L961">961</a>         <strong class="jxr_keyword">if</strong> (defaultCredentialsProvider == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L962" href="#L962">962</a>             <strong class="jxr_keyword">if</strong> (systemProperties) {
-<a class="jxr_linenumber" name="L963" href="#L963">963</a>                 defaultCredentialsProvider = <strong class="jxr_keyword">new</strong> <a name="SystemDefaultCredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.html#SystemDefaultCredentialsProvider">SystemDefaultCredentialsProvider</a>();
-<a class="jxr_linenumber" name="L964" href="#L964">964</a>             } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L965" href="#L965">965</a>                 defaultCredentialsProvider = <strong class="jxr_keyword">new</strong> <a name="BasicCredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/impl/auth/BasicCredentialsProvider.html#BasicCredentialsProvider">BasicCredentialsProvider</a>();
-<a class="jxr_linenumber" name="L966" href="#L966">966</a>             }
-<a class="jxr_linenumber" name="L967" href="#L967">967</a>         }
-<a class="jxr_linenumber" name="L968" href="#L968">968</a> 
-<a class="jxr_linenumber" name="L969" href="#L969">969</a>         List&lt;Closeable&gt; closeablesCopy = closeables != <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(closeables) : <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L970" href="#L970">970</a>         <strong class="jxr_keyword">if</strong> (!<strong class="jxr_keyword">this</strong>.connManagerShared) {
-<a class="jxr_linenumber" name="L971" href="#L971">971</a>             <strong class="jxr_keyword">if</strong> (closeablesCopy == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L972" href="#L972">972</a>                 closeablesCopy = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(1);
-<a class="jxr_linenumber" name="L973" href="#L973">973</a>             }
-<a class="jxr_linenumber" name="L974" href="#L974">974</a>             <strong class="jxr_keyword">if</strong> (evictExpiredConnections || evictIdleConnections) {
-<a class="jxr_linenumber" name="L975" href="#L975">975</a>                 <strong class="jxr_keyword">if</strong> (connManagerCopy instanceof ConnPoolControl) {
-<a class="jxr_linenumber" name="L976" href="#L976">976</a>                     <strong class="jxr_keyword">final</strong> <a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/ht<a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/http/impl/IdleConnectionEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a>nEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a> connectionEvictor = <strong class="jxr_keyword">new</strong> <a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/http/impl/IdleConnectionEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a>((ConnPoolControl&lt;?&gt;) connManagerCopy,
-<a class="jxr_linenumber" name="L977" href="#L977">977</a>                             maxIdleTime, maxIdleTime);
-<a class="jxr_linenumber" name="L978" href="#L978">978</a>                     closeablesCopy.add(<strong class="jxr_keyword">new</strong> Closeable() {
-<a class="jxr_linenumber" name="L979" href="#L979">979</a> 
-<a class="jxr_linenumber" name="L980" href="#L980">980</a>                         @Override
-<a class="jxr_linenumber" name="L981" href="#L981">981</a>                         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="L982" href="#L982">982</a>                             connectionEvictor.shutdown();
-<a class="jxr_linenumber" name="L983" href="#L983">983</a>                             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L984" href="#L984">984</a>                                 connectionEvictor.awaitTermination(Timeout.ofSeconds(1));
-<a class="jxr_linenumber" name="L985" href="#L985">985</a>                             } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> InterruptedException interrupted) {
-<a class="jxr_linenumber" name="L986" href="#L986">986</a>                                 Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="L987" href="#L987">987</a>                             }
-<a class="jxr_linenumber" name="L988" href="#L988">988</a>                         }
-<a class="jxr_linenumber" name="L989" href="#L989">989</a> 
-<a class="jxr_linenumber" name="L990" href="#L990">990</a>                     });
-<a class="jxr_linenumber" name="L991" href="#L991">991</a>                     connectionEvictor.start();
-<a class="jxr_linenumber" name="L992" href="#L992">992</a>                 }
-<a class="jxr_linenumber" name="L993" href="#L993">993</a>             }
-<a class="jxr_linenumber" name="L994" href="#L994">994</a>             closeablesCopy.add(connManagerCopy);
-<a class="jxr_linenumber" name="L995" href="#L995">995</a>         }
-<a class="jxr_linenumber" name="L996" href="#L996">996</a> 
-<a class="jxr_linenumber" name="L997" href="#L997">997</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="InternalHttpClient" href="../../../../../../../org/apache/hc/client5/http/impl/classic/InternalHttpClient.html#InternalHttpClient">InternalHttpClient</a>(
-<a class="jxr_linenumber" name="L998" href="#L998">998</a>                 connManagerCopy,
-<a class="jxr_linenumber" name="L999" href="#L999">999</a>                 requestExecCopy,
-<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>                 execChain,
-<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>                 routePlannerCopy,
-<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>                 cookieSpecRegistryCopy,
-<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>                 authSchemeRegistryCopy,
-<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>                 defaultCookieStore,
-<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>                 defaultCredentialsProvider,
-<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>                 defaultRequestConfig != <strong class="jxr_keyword">null</strong> ? defaultRequestConfig : RequestConfig.DEFAULT,
-<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a>                 closeablesCopy);
-<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>     }
-<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a> 
-<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a> }
+<a class="jxr_linenumber" name="L931" href="#L931">931</a>         NamedElementChain&lt;ExecChainHandler&gt;.Node current = execChainDefinition.getLast();
+<a class="jxr_linenumber" name="L932" href="#L932">932</a>         <a name="ExecChainElement" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ExecChainElement.html#ExecChainElement">ExecChainElement</a> execChain = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L933" href="#L933">933</a>         <strong class="jxr_keyword">while</strong> (current != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L934" href="#L934">934</a>             execChain = <strong class="jxr_keyword">new</strong> <a name="ExecChainElement" href="../../../../../../../org/apache/hc/client5/http/impl/classic/ExecChainElement.html#ExecChainElement">ExecChainElement</a>(current.getValue(), execChain);
+<a class="jxr_linenumber" name="L935" href="#L935">935</a>             current = current.getPrevious();
+<a class="jxr_linenumber" name="L936" href="#L936">936</a>         }
+<a class="jxr_linenumber" name="L937" href="#L937">937</a> 
+<a class="jxr_linenumber" name="L938" href="#L938">938</a>         Lookup&lt;AuthSchemeFactory&gt; authSchemeRegistryCopy = <strong class="jxr_keyword">this</strong>.authSchemeRegistry;
+<a class="jxr_linenumber" name="L939" href="#L939">939</a>         <strong class="jxr_keyword">if</strong> (authSchemeRegistryCopy == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L940" href="#L940">940</a>             authSchemeRegistryCopy = RegistryBuilder.&lt;AuthSchemeFactory&gt;create()
+<a class="jxr_linenumber" name="L941" href="#L941">941</a>                 .register(StandardAuthScheme.BASIC, BasicSchemeFactory.INSTANCE)
+<a class="jxr_linenumber" name="L942" href="#L942">942</a>                 .register(StandardAuthScheme.DIGEST, DigestSchemeFactory.INSTANCE)
+<a class="jxr_linenumber" name="L943" href="#L943">943</a>                 .register(StandardAuthScheme.NTLM, NTLMSchemeFactory.INSTANCE)
+<a class="jxr_linenumber" name="L944" href="#L944">944</a>                 .register(StandardAuthScheme.SPNEGO, SPNegoSchemeFactory.DEFAULT)
+<a class="jxr_linenumber" name="L945" href="#L945">945</a>                 .register(StandardAuthScheme.KERBEROS, KerberosSchemeFactory.DEFAULT)
+<a class="jxr_linenumber" name="L946" href="#L946">946</a>                 .build();
+<a class="jxr_linenumber" name="L947" href="#L947">947</a>         }
+<a class="jxr_linenumber" name="L948" href="#L948">948</a>         Lookup&lt;CookieSpecFactory&gt; cookieSpecRegistryCopy = <strong class="jxr_keyword">this</strong>.cookieSpecRegistry;
+<a class="jxr_linenumber" name="L949" href="#L949">949</a>         <strong class="jxr_keyword">if</strong> (cookieSpecRegistryCopy == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L950" href="#L950">950</a>             cookieSpecRegistryCopy = CookieSpecSupport.createDefault();
+<a class="jxr_linenumber" name="L951" href="#L951">951</a>         }
+<a class="jxr_linenumber" name="L952" href="#L952">952</a> 
+<a class="jxr_linenumber" name="L953" href="#L953">953</a>         <a name="CookieStore" href="../../../../../../../org/apache/hc/client5/http/cookie/CookieStore.html#CookieStore">CookieStore</a> defaultCookieStore = <strong class="jxr_keyword">this</strong>.cookieStore;
+<a class="jxr_linenumber" name="L954" href="#L954">954</a>         <strong class="jxr_keyword">if</strong> (defaultCookieStore == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L955" href="#L955">955</a>             defaultCookieStore = <strong class="jxr_keyword">new</strong> <a name="BasicCookieStore" href="../../../../../../../org/apache/hc/client5/http/cookie/BasicCookieStore.html#BasicCookieStore">BasicCookieStore</a>();
+<a class="jxr_linenumber" name="L956" href="#L956">956</a>         }
+<a class="jxr_linenumber" name="L957" href="#L957">957</a> 
+<a class="jxr_linenumber" name="L958" href="#L958">958</a>         <a name="CredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsProvider.html#CredentialsProvider">CredentialsProvider</a> defaultCredentialsProvider = <strong class="jxr_keyword">this</strong>.credentialsProvider;
+<a class="jxr_linenumber" name="L959" href="#L959">959</a>         <strong class="jxr_keyword">if</strong> (defaultCredentialsProvider == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L960" href="#L960">960</a>             <strong class="jxr_keyword">if</strong> (systemProperties) {
+<a class="jxr_linenumber" name="L961" href="#L961">961</a>                 defaultCredentialsProvider = <strong class="jxr_keyword">new</strong> <a name="SystemDefaultCredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/impl/auth/SystemDefaultCredentialsProvider.html#SystemDefaultCredentialsProvider">SystemDefaultCredentialsProvider</a>();
+<a class="jxr_linenumber" name="L962" href="#L962">962</a>             } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L963" href="#L963">963</a>                 defaultCredentialsProvider = <strong class="jxr_keyword">new</strong> <a name="BasicCredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/impl/auth/BasicCredentialsProvider.html#BasicCredentialsProvider">BasicCredentialsProvider</a>();
+<a class="jxr_linenumber" name="L964" href="#L964">964</a>             }
+<a class="jxr_linenumber" name="L965" href="#L965">965</a>         }
+<a class="jxr_linenumber" name="L966" href="#L966">966</a> 
+<a class="jxr_linenumber" name="L967" href="#L967">967</a>         List&lt;Closeable&gt; closeablesCopy = closeables != <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(closeables) : <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L968" href="#L968">968</a>         <strong class="jxr_keyword">if</strong> (!<strong class="jxr_keyword">this</strong>.connManagerShared) {
+<a class="jxr_linenumber" name="L969" href="#L969">969</a>             <strong class="jxr_keyword">if</strong> (closeablesCopy == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L970" href="#L970">970</a>                 closeablesCopy = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(1);
+<a class="jxr_linenumber" name="L971" href="#L971">971</a>             }
+<a class="jxr_linenumber" name="L972" href="#L972">972</a>             <strong class="jxr_keyword">if</strong> (evictExpiredConnections || evictIdleConnections) {
+<a class="jxr_linenumber" name="L973" href="#L973">973</a>                 <strong class="jxr_keyword">if</strong> (connManagerCopy instanceof ConnPoolControl) {
+<a class="jxr_linenumber" name="L974" href="#L974">974</a>                     <strong class="jxr_keyword">final</strong> <a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/ht<a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/http/impl/IdleConnectionEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a>nEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a> connectionEvictor = <strong class="jxr_keyword">new</strong> <a name="IdleConnectionEvictor" href="../../../../../../../org/apache/hc/client5/http/impl/IdleConnectionEvictor.html#IdleConnectionEvictor">IdleConnectionEvictor</a>((ConnPoolControl&lt;?&gt;) connManagerCopy,
+<a class="jxr_linenumber" name="L975" href="#L975">975</a>                             maxIdleTime, maxIdleTime);
+<a class="jxr_linenumber" name="L976" href="#L976">976</a>                     closeablesCopy.add(<strong class="jxr_keyword">new</strong> Closeable() {
+<a class="jxr_linenumber" name="L977" href="#L977">977</a> 
+<a class="jxr_linenumber" name="L978" href="#L978">978</a>                         @Override
+<a class="jxr_linenumber" name="L979" href="#L979">979</a>                         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="L980" href="#L980">980</a>                             connectionEvictor.shutdown();
+<a class="jxr_linenumber" name="L981" href="#L981">981</a>                             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L982" href="#L982">982</a>                                 connectionEvictor.awaitTermination(Timeout.ofSeconds(1));
+<a class="jxr_linenumber" name="L983" href="#L983">983</a>                             } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> InterruptedException interrupted) {
+<a class="jxr_linenumber" name="L984" href="#L984">984</a>                                 Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="L985" href="#L985">985</a>                             }
+<a class="jxr_linenumber" name="L986" href="#L986">986</a>                         }
+<a class="jxr_linenumber" name="L987" href="#L987">987</a> 
+<a class="jxr_linenumber" name="L988" href="#L988">988</a>                     });
+<a class="jxr_linenumber" name="L989" href="#L989">989</a>                     connectionEvictor.start();
+<a class="jxr_linenumber" name="L990" href="#L990">990</a>                 }
+<a class="jxr_linenumber" name="L991" href="#L991">991</a>             }
+<a class="jxr_linenumber" name="L992" href="#L992">992</a>             closeablesCopy.add(connManagerCopy);
+<a class="jxr_linenumber" name="L993" href="#L993">993</a>         }
+<a class="jxr_linenumber" name="L994" href="#L994">994</a> 
+<a class="jxr_linenumber" name="L995" href="#L995">995</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="InternalHttpClient" href="../../../../../../../org/apache/hc/client5/http/impl/classic/InternalHttpClient.html#InternalHttpClient">InternalHttpClient</a>(
+<a class="jxr_linenumber" name="L996" href="#L996">996</a>                 connManagerCopy,
+<a class="jxr_linenumber" name="L997" href="#L997">997</a>                 requestExecCopy,
+<a class="jxr_linenumber" name="L998" href="#L998">998</a>                 execChain,
+<a class="jxr_linenumber" name="L999" href="#L999">999</a>                 routePlannerCopy,
+<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>                 cookieSpecRegistryCopy,
+<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>                 authSchemeRegistryCopy,
+<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>                 defaultCookieStore,
+<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>                 defaultCredentialsProvider,
+<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>                 defaultRequestConfig != <strong class="jxr_keyword">null</strong> ? defaultRequestConfig : RequestConfig.DEFAULT,
+<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>                 closeablesCopy);
+<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>     }
+<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> 
+<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a> }
 </pre>
 <hr/>
 <div id="footer">Copyright &#169; 1999&#x2013;2020 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>

Modified: httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/ProtocolExec.html
URL: http://svn.apache.org/viewvc/httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/ProtocolExec.html?rev=1878766&r1=1878765&r2=1878766&view=diff
==============================================================================
--- httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/ProtocolExec.html (original)
+++ httpcomponents/site/httpcomponents-client-5.0.x/httpclient5/xref/org/apache/hc/client5/http/impl/classic/ProtocolExec.html Fri Jun 12 09:24:26 2020
@@ -104,7 +104,7 @@
 <a class="jxr_linenumber" name="L96" href="#L96">96</a>          <strong class="jxr_keyword">this</strong>.httpProcessor = Args.notNull(httpProcessor, <span class="jxr_string">"HTTP protocol processor"</span>);
 <a class="jxr_linenumber" name="L97" href="#L97">97</a>          <strong class="jxr_keyword">this</strong>.targetAuthStrategy = Args.notNull(targetAuthStrategy, <span class="jxr_string">"Target authentication strategy"</span>);
 <a class="jxr_linenumber" name="L98" href="#L98">98</a>          <strong class="jxr_keyword">this</strong>.proxyAuthStrategy = Args.notNull(proxyAuthStrategy, <span class="jxr_string">"Proxy authentication strategy"</span>);
-<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">this</strong>.authenticator = <strong class="jxr_keyword">new</strong> <a name="HttpAuthenticator" href="../../../../../../../org/apache/hc/client5/http/impl/auth/HttpAuthenticator.html#HttpAuthenticator">HttpAuthenticator</a>(log);
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">this</strong>.authenticator = <strong class="jxr_keyword">new</strong> <a name="HttpAuthenticator" href="../../../../../../../org/apache/hc/client5/http/impl/auth/HttpAuthenticator.html#HttpAuthenticator">HttpAuthenticator</a>();
 <a class="jxr_linenumber" name="L100" href="#L100">100</a>     }
 <a class="jxr_linenumber" name="L101" href="#L101">101</a> 
 <a class="jxr_linenumber" name="L102" href="#L102">102</a>     @Override
@@ -115,158 +115,162 @@
 <a class="jxr_linenumber" name="L107" href="#L107">107</a>         Args.notNull(request, <span class="jxr_string">"HTTP request"</span>);
 <a class="jxr_linenumber" name="L108" href="#L108">108</a>         Args.notNull(scope, <span class="jxr_string">"Scope"</span>);
 <a class="jxr_linenumber" name="L109" href="#L109">109</a> 
-<a class="jxr_linenumber" name="L110" href="#L110">110</a>         <strong class="jxr_keyword">final</strong> String exchangeId = scope.exchangeId;
-<a class="jxr_linenumber" name="L111" href="#L111">111</a>         <strong class="jxr_keyword">final</strong> <a name="HttpRoute" href="../../../../../../../org/apache/hc/client5/http/HttpRoute.html#HttpRoute">HttpRoute</a> route = scope.route;
-<a class="jxr_linenumber" name="L112" href="#L112">112</a>         <strong class="jxr_keyword">final</strong> <a name="HttpClientContext" href="../../../../../../../org/apache/hc/client5/http/protocol/HttpClientContext.html#HttpClientContext">HttpClientContext</a> context = scope.clientContext;
-<a class="jxr_linenumber" name="L113" href="#L113">113</a>         <strong class="jxr_keyword">final</strong> <a name="ExecRuntime" href="../../../../../../../org/apache/hc/client5/http/classic/ExecRuntime.html#ExecRuntime">ExecRuntime</a> execRuntime = scope.execRuntime;
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
-<a class="jxr_linenumber" name="L115" href="#L115">115</a>         <strong class="jxr_keyword">final</strong> HttpHost target = route.getTargetHost();
-<a class="jxr_linenumber" name="L116" href="#L116">116</a>         <strong class="jxr_keyword">final</strong> HttpHost proxy = route.getProxyHost();
-<a class="jxr_linenumber" name="L117" href="#L117">117</a>         <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> targetAuthExchange = context.getAuthExchange(target);
-<a class="jxr_linenumber" name="L118" href="#L118">118</a>         <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> proxyAuthExchange = proxy != <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a>s="jxr_keyword">null</strong> ? context.getAuthExchange(proxy) : <strong class="jxr_keyword">new</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a>();
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
-<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L121" href="#L121">121</a>             <strong class="jxr_keyword">if</strong> (proxy != <strong class="jxr_keyword">null</strong> &amp;&amp; !route.isTunnelled()) {
-<a class="jxr_linenumber" name="L122" href="#L122">122</a>                 <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L123" href="#L123">123</a>                     URI uri = request.getUri();
-<a class="jxr_linenumber" name="L124" href="#L124">124</a>                     <strong class="jxr_keyword">if</strong> (!uri.isAbsolute()) {
-<a class="jxr_linenumber" name="L125" href="#L125">125</a>                         uri = URIUtils.rewriteURI(uri, target, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="L126" href="#L126">126</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L127" href="#L127">127</a>                         uri = URIUtils.rewriteURI(uri);
-<a class="jxr_linenumber" name="L128" href="#L128">128</a>                     }
-<a class="jxr_linenumber" name="L129" href="#L129">129</a>                     request.setPath(uri.toASCIIString());
-<a class="jxr_linenumber" name="L130" href="#L130">130</a>                 } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> URISyntaxException ex) {
-<a class="jxr_linenumber" name="L131" href="#L131">131</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ProtocolException(<span class="jxr_string">"Invalid request URI: "</span> + request.getRequestUri(), ex);
-<a class="jxr_linenumber" name="L132" href="#L132">132</a>                 }
-<a class="jxr_linenumber" name="L133" href="#L133">133</a>             }
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> 
-<a class="jxr_linenumber" name="L135" href="#L135">135</a>             <strong class="jxr_keyword">final</strong> URIAuthority authority = request.getAuthority();
-<a class="jxr_linenumber" name="L136" href="#L136">136</a>             <strong class="jxr_keyword">if</strong> (authority != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L137" href="#L137">137</a>                 <strong class="jxr_keyword">final</strong> <a name="CredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsProvider.html#CredentialsProvider">CredentialsProvider</a> credsProvider = context.getCredentialsProvider();
-<a class="jxr_linenumber" name="L138" href="#L138">138</a>                 <strong class="jxr_keyword">if</strong> (credsProvider instanceof <a name="CredentialsStore" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsStore.html#CredentialsStore">CredentialsStore</a>) {
-<a class="jxr_linenumber" name="L139" href="#L139">139</a>                     AuthSupport.extractFromAuthority(request.getScheme(), authority, (<a name="CredentialsStore" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsStore.html#CredentialsStore">CredentialsStore</a>) credsProvider);
-<a class="jxr_linenumber" name="L140" href="#L140">140</a>                 }
-<a class="jxr_linenumber" name="L141" href="#L141">141</a>             }
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> 
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
-<a class="jxr_linenumber" name="L144" href="#L144">144</a>             <strong class="jxr_keyword">for</strong> (;;) {
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> 
-<a class="jxr_linenumber" name="L146" href="#L146">146</a>                 <em class="jxr_comment">// Run request protocol interceptors</em>
-<a class="jxr_linenumber" name="L147" href="#L147">147</a>                 context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
-<a class="jxr_linenumber" name="L148" href="#L148">148</a>                 context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
+<a class="jxr_linenumber" name="L110" href="#L110">110</a>         <strong class="jxr_keyword">if</strong> (Method.CONNECT.isSame(request.getMethod())) {
+<a class="jxr_linenumber" name="L111" href="#L111">111</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ProtocolException(<span class="jxr_string">"Direct execution of CONNECT is not allowed"</span>);
+<a class="jxr_linenumber" name="L112" href="#L112">112</a>         }
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> 
+<a class="jxr_linenumber" name="L114" href="#L114">114</a>         <strong class="jxr_keyword">final</strong> String exchangeId = scope.exchangeId;
+<a class="jxr_linenumber" name="L115" href="#L115">115</a>         <strong class="jxr_keyword">final</strong> <a name="HttpRoute" href="../../../../../../../org/apache/hc/client5/http/HttpRoute.html#HttpRoute">HttpRoute</a> route = scope.route;
+<a class="jxr_linenumber" name="L116" href="#L116">116</a>         <strong class="jxr_keyword">final</strong> <a name="HttpClientContext" href="../../../../../../../org/apache/hc/client5/http/protocol/HttpClientContext.html#HttpClientContext">HttpClientContext</a> context = scope.clientContext;
+<a class="jxr_linenumber" name="L117" href="#L117">117</a>         <strong class="jxr_keyword">final</strong> <a name="ExecRuntime" href="../../../../../../../org/apache/hc/client5/http/classic/ExecRuntime.html#ExecRuntime">ExecRuntime</a> execRuntime = scope.execRuntime;
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
+<a class="jxr_linenumber" name="L119" href="#L119">119</a>         <strong class="jxr_keyword">final</strong> HttpHost target = route.getTargetHost();
+<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <strong class="jxr_keyword">final</strong> HttpHost proxy = route.getProxyHost();
+<a class="jxr_linenumber" name="L121" href="#L121">121</a>         <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> targetAuthExchange = context.getAuthExchange(target);
+<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> proxyAuthExchange = proxy != <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a>s="jxr_keyword">null</strong> ? context.getAuthExchange(proxy) : <strong class="jxr_keyword">new</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a>();
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> 
+<a class="jxr_linenumber" name="L124" href="#L124">124</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L125" href="#L125">125</a>             <strong class="jxr_keyword">if</strong> (proxy != <strong class="jxr_keyword">null</strong> &amp;&amp; !route.isTunnelled()) {
+<a class="jxr_linenumber" name="L126" href="#L126">126</a>                 <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L127" href="#L127">127</a>                     URI uri = request.getUri();
+<a class="jxr_linenumber" name="L128" href="#L128">128</a>                     <strong class="jxr_keyword">if</strong> (!uri.isAbsolute()) {
+<a class="jxr_linenumber" name="L129" href="#L129">129</a>                         uri = URIUtils.rewriteURI(uri, target, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="L130" href="#L130">130</a>                     } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L131" href="#L131">131</a>                         uri = URIUtils.rewriteURI(uri);
+<a class="jxr_linenumber" name="L132" href="#L132">132</a>                     }
+<a class="jxr_linenumber" name="L133" href="#L133">133</a>                     request.setPath(uri.toASCIIString());
+<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> URISyntaxException ex) {
+<a class="jxr_linenumber" name="L135" href="#L135">135</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ProtocolException(<span class="jxr_string">"Invalid request URI: "</span> + request.getRequestUri(), ex);
+<a class="jxr_linenumber" name="L136" href="#L136">136</a>                 }
+<a class="jxr_linenumber" name="L137" href="#L137">137</a>             }
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> 
+<a class="jxr_linenumber" name="L139" href="#L139">139</a>             <strong class="jxr_keyword">final</strong> URIAuthority authority = request.getAuthority();
+<a class="jxr_linenumber" name="L140" href="#L140">140</a>             <strong class="jxr_keyword">if</strong> (authority != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L141" href="#L141">141</a>                 <strong class="jxr_keyword">final</strong> <a name="CredentialsProvider" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsProvider.html#CredentialsProvider">CredentialsProvider</a> credsProvider = context.getCredentialsProvider();
+<a class="jxr_linenumber" name="L142" href="#L142">142</a>                 <strong class="jxr_keyword">if</strong> (credsProvider instanceof <a name="CredentialsStore" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsStore.html#CredentialsStore">CredentialsStore</a>) {
+<a class="jxr_linenumber" name="L143" href="#L143">143</a>                     AuthSupport.extractFromAuthority(request.getScheme(), authority, (<a name="CredentialsStore" href="../../../../../../../org/apache/hc/client5/http/auth/CredentialsStore.html#CredentialsStore">CredentialsStore</a>) credsProvider);
+<a class="jxr_linenumber" name="L144" href="#L144">144</a>                 }
+<a class="jxr_linenumber" name="L145" href="#L145">145</a>             }
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> 
+<a class="jxr_linenumber" name="L148" href="#L148">148</a>             <strong class="jxr_keyword">for</strong> (;;) {
 <a class="jxr_linenumber" name="L149" href="#L149">149</a> 
-<a class="jxr_linenumber" name="L150" href="#L150">150</a>                 httpProcessor.process(request, request.getEntity(), context);
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
-<a class="jxr_linenumber" name="L152" href="#L152">152</a>                 <strong class="jxr_keyword">if</strong> (!request.containsHeader(HttpHeaders.AUTHORIZATION)) {
-<a class="jxr_linenumber" name="L153" href="#L153">153</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
-<a class="jxr_linenumber" name="L154" href="#L154">154</a>                         log.debug(exchangeId + <span class="jxr_string">": target auth state: "</span> + targetAuthExchange.getState());
-<a class="jxr_linenumber" name="L155" href="#L155">155</a>                     }
-<a class="jxr_linenumber" name="L156" href="#L156">156</a>                     authenticator.addAuthResponse(target, ChallengeType.TARGET, request, targetAuthExchange, context);
-<a class="jxr_linenumber" name="L157" href="#L157">157</a>                 }
-<a class="jxr_linenumber" name="L158" href="#L158">158</a>                 <strong class="jxr_keyword">if</strong> (!request.containsHeader(HttpHeaders.PROXY_AUTHORIZATION) &amp;&amp; !route.isTunnelled()) {
-<a class="jxr_linenumber" name="L159" href="#L159">159</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
-<a class="jxr_linenumber" name="L160" href="#L160">160</a>                         log.debug(exchangeId + <span class="jxr_string">": proxy auth state: "</span> + proxyAuthExchange.getState());
-<a class="jxr_linenumber" name="L161" href="#L161">161</a>                     }
-<a class="jxr_linenumber" name="L162" href="#L162">162</a>                     authenticator.addAuthResponse(proxy, ChallengeType.PROXY, request, proxyAuthExchange, context);
-<a class="jxr_linenumber" name="L163" href="#L163">163</a>                 }
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> 
-<a class="jxr_linenumber" name="L165" href="#L165">165</a>                 <strong class="jxr_keyword">final</strong> ClassicHttpResponse response = chain.proceed(request, scope);
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> 
-<a class="jxr_linenumber" name="L167" href="#L167">167</a>                 context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
-<a class="jxr_linenumber" name="L168" href="#L168">168</a>                 httpProcessor.process(response, response.getEntity(), context);
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> 
-<a class="jxr_linenumber" name="L170" href="#L170">170</a>                 <strong class="jxr_keyword">if</strong> (Method.TRACE.isSame(request.getMethod())) {
-<a class="jxr_linenumber" name="L171" href="#L171">171</a>                     <em class="jxr_comment">// Do not perform authentication for TRACE request</em>
-<a class="jxr_linenumber" name="L172" href="#L172">172</a>                     <strong class="jxr_keyword">return</strong> response;
-<a class="jxr_linenumber" name="L173" href="#L173">173</a>                 }
-<a class="jxr_linenumber" name="L174" href="#L174">174</a>                 <strong class="jxr_keyword">final</strong> HttpEntity requestEntity = request.getEntity();
-<a class="jxr_linenumber" name="L175" href="#L175">175</a>                 <strong class="jxr_keyword">if</strong> (requestEntity != <strong class="jxr_keyword">null</strong> &amp;&amp; !requestEntity.isRepeatable()) {
-<a class="jxr_linenumber" name="L176" href="#L176">176</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
-<a class="jxr_linenumber" name="L177" href="#L177">177</a>                         log.debug(exchangeId + <span class="jxr_string">": Cannot retry non-repeatable request"</span>);
-<a class="jxr_linenumber" name="L178" href="#L178">178</a>                     }
-<a class="jxr_linenumber" name="L179" href="#L179">179</a>                     <strong class="jxr_keyword">return</strong> response;
-<a class="jxr_linenumber" name="L180" href="#L180">180</a>                 }
-<a class="jxr_linenumber" name="L181" href="#L181">181</a>                 <strong class="jxr_keyword">if</strong> (needAuthentication(targetAuthExchange, proxyAuthExchange, route, request, response, context)) {
-<a class="jxr_linenumber" name="L182" href="#L182">182</a>                     <em class="jxr_comment">// Make sure the response body is fully consumed, if present</em>
-<a class="jxr_linenumber" name="L183" href="#L183">183</a>                     <strong class="jxr_keyword">final</strong> HttpEntity responseEntity = response.getEntity();
-<a class="jxr_linenumber" name="L184" href="#L184">184</a>                     <strong class="jxr_keyword">if</strong> (execRuntime.isConnectionReusable()) {
-<a class="jxr_linenumber" name="L185" href="#L185">185</a>                         EntityUtils.consume(responseEntity);
-<a class="jxr_linenumber" name="L186" href="#L186">186</a>                     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L187" href="#L187">187</a>                         execRuntime.disconnectEndpoint();
-<a class="jxr_linenumber" name="L188" href="#L188">188</a>                         <strong class="jxr_keyword">if</strong> (proxyAuthExchange.getState() == AuthExchange.State.SUCCESS
-<a class="jxr_linenumber" name="L189" href="#L189">189</a>                                 &amp;&amp; proxyAuthExchange.isConnectionBased()) {
-<a class="jxr_linenumber" name="L190" href="#L190">190</a>                             <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
-<a class="jxr_linenumber" name="L191" href="#L191">191</a>                                 log.debug(exchangeId + <span class="jxr_string">": resetting proxy auth state"</span>);
-<a class="jxr_linenumber" name="L192" href="#L192">192</a>                             }
-<a class="jxr_linenumber" name="L193" href="#L193">193</a>                             proxyAuthExchange.reset();
-<a class="jxr_linenumber" name="L194" href="#L194">194</a>                         }
-<a class="jxr_linenumber" name="L195" href="#L195">195</a>                         <strong class="jxr_keyword">if</strong> (targetAuthExchange.getState() == AuthExchange.State.SUCCESS
-<a class="jxr_linenumber" name="L196" href="#L196">196</a>                                 &amp;&amp; targetAuthExchange.isConnectionBased()) {
-<a class="jxr_linenumber" name="L197" href="#L197">197</a>                             <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
-<a class="jxr_linenumber" name="L198" href="#L198">198</a>                                 log.debug(exchangeId + <span class="jxr_string">": resetting target auth state"</span>);
-<a class="jxr_linenumber" name="L199" href="#L199">199</a>                             }
-<a class="jxr_linenumber" name="L200" href="#L200">200</a>                             targetAuthExchange.reset();
-<a class="jxr_linenumber" name="L201" href="#L201">201</a>                         }
-<a class="jxr_linenumber" name="L202" href="#L202">202</a>                     }
-<a class="jxr_linenumber" name="L203" href="#L203">203</a>                     <em class="jxr_comment">// Reset request headers</em>
-<a class="jxr_linenumber" name="L204" href="#L204">204</a>                     <strong class="jxr_keyword">final</strong> ClassicHttpRequest original = scope.originalRequest;
-<a class="jxr_linenumber" name="L205" href="#L205">205</a>                     request.setHeaders();
-<a class="jxr_linenumber" name="L206" href="#L206">206</a>                     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Iterator&lt;Header&gt; it = original.headerIterator(); it.hasNext(); ) {
-<a class="jxr_linenumber" name="L207" href="#L207">207</a>                         request.addHeader(it.next());
-<a class="jxr_linenumber" name="L208" href="#L208">208</a>                     }
-<a class="jxr_linenumber" name="L209" href="#L209">209</a>                 } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L210" href="#L210">210</a>                     <strong class="jxr_keyword">return</strong> response;
-<a class="jxr_linenumber" name="L211" href="#L211">211</a>                 }
-<a class="jxr_linenumber" name="L212" href="#L212">212</a>             }
-<a class="jxr_linenumber" name="L213" href="#L213">213</a>         } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> HttpException ex) {
-<a class="jxr_linenumber" name="L214" href="#L214">214</a>             execRuntime.discardEndpoint();
-<a class="jxr_linenumber" name="L215" href="#L215">215</a>             <strong class="jxr_keyword">throw</strong> ex;
-<a class="jxr_linenumber" name="L216" href="#L216">216</a>         } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> RuntimeException | IOException ex) {
-<a class="jxr_linenumber" name="L217" href="#L217">217</a>             execRuntime.discardEndpoint();
-<a class="jxr_linenumber" name="L218" href="#L218">218</a>             <strong class="jxr_keyword">if</strong> (proxyAuthExchange.isConnectionBased()) {
-<a class="jxr_linenumber" name="L219" href="#L219">219</a>                 proxyAuthExchange.reset();
-<a class="jxr_linenumber" name="L220" href="#L220">220</a>             }
-<a class="jxr_linenumber" name="L221" href="#L221">221</a>             <strong class="jxr_keyword">if</strong> (targetAuthExchange.isConnectionBased()) {
-<a class="jxr_linenumber" name="L222" href="#L222">222</a>                 targetAuthExchange.reset();
-<a class="jxr_linenumber" name="L223" href="#L223">223</a>             }
-<a class="jxr_linenumber" name="L224" href="#L224">224</a>             <strong class="jxr_keyword">throw</strong> ex;
-<a class="jxr_linenumber" name="L225" href="#L225">225</a>         }
-<a class="jxr_linenumber" name="L226" href="#L226">226</a>     }
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
-<a class="jxr_linenumber" name="L228" href="#L228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> needAuthentication(
-<a class="jxr_linenumber" name="L229" href="#L229">229</a>             <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> targetAuthExchange,
-<a class="jxr_linenumber" name="L230" href="#L230">230</a>             <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> proxyAuthExchange,
-<a class="jxr_linenumber" name="L231" href="#L231">231</a>             <strong class="jxr_keyword">final</strong> <a name="HttpRoute" href="../../../../../../../org/apache/hc/client5/http/HttpRoute.html#HttpRoute">HttpRoute</a> route,
-<a class="jxr_linenumber" name="L232" href="#L232">232</a>             <strong class="jxr_keyword">final</strong> ClassicHttpRequest request,
-<a class="jxr_linenumber" name="L233" href="#L233">233</a>             <strong class="jxr_keyword">final</strong> HttpResponse response,
-<a class="jxr_linenumber" name="L234" href="#L234">234</a>             <strong class="jxr_keyword">final</strong> <a name="HttpClientContext" href="../../../../../../../org/apache/hc/client5/http/protocol/HttpClientContext.html#HttpClientContext">HttpClientContext</a> context) {
-<a class="jxr_linenumber" name="L235" href="#L235">235</a>         <strong class="jxr_keyword">final</strong> <a name="RequestConfig" href="../../../../../../../org/apache/hc/client5/http/config/RequestConfig.html#RequestConfig">RequestConfig</a> config = context.getRequestConfig();
-<a class="jxr_linenumber" name="L236" href="#L236">236</a>         <strong class="jxr_keyword">if</strong> (config.isAuthenticationEnabled()) {
-<a class="jxr_linenumber" name="L237" href="#L237">237</a>             <strong class="jxr_keyword">final</strong> HttpHost target = AuthSupport.resolveAuthTarget(request, route);
-<a class="jxr_linenumber" name="L238" href="#L238">238</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> targetAuthRequested = authenticator.isChallenged(
-<a class="jxr_linenumber" name="L239" href="#L239">239</a>                     target, ChallengeType.TARGET, response, targetAuthExchange, context);
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> 
-<a class="jxr_linenumber" name="L241" href="#L241">241</a>             HttpHost proxy = route.getProxyHost();
-<a class="jxr_linenumber" name="L242" href="#L242">242</a>             <em class="jxr_comment">// if proxy is not set use target host instead</em>
-<a class="jxr_linenumber" name="L243" href="#L243">243</a>             <strong class="jxr_keyword">if</strong> (proxy == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L244" href="#L244">244</a>                 proxy = route.getTargetHost();
-<a class="jxr_linenumber" name="L245" href="#L245">245</a>             }
-<a class="jxr_linenumber" name="L246" href="#L246">246</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> proxyAuthRequested = authenticator.isChallenged(
-<a class="jxr_linenumber" name="L247" href="#L247">247</a>                     proxy, ChallengeType.PROXY, response, proxyAuthExchange, context);
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
-<a class="jxr_linenumber" name="L249" href="#L249">249</a>             <strong class="jxr_keyword">if</strong> (targetAuthRequested) {
-<a class="jxr_linenumber" name="L250" href="#L250">250</a>                 <strong class="jxr_keyword">return</strong> authenticator.updateAuthState(target, ChallengeType.TARGET, response,
-<a class="jxr_linenumber" name="L251" href="#L251">251</a>                         targetAuthStrategy, targetAuthExchange, context);
-<a class="jxr_linenumber" name="L252" href="#L252">252</a>             }
-<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <strong class="jxr_keyword">if</strong> (proxyAuthRequested) {
-<a class="jxr_linenumber" name="L254" href="#L254">254</a>                 <strong class="jxr_keyword">return</strong> authenticator.updateAuthState(proxy, ChallengeType.PROXY, response,
-<a class="jxr_linenumber" name="L255" href="#L255">255</a>                         proxyAuthStrategy, proxyAuthExchange, context);
+<a class="jxr_linenumber" name="L150" href="#L150">150</a>                 <em class="jxr_comment">// Run request protocol interceptors</em>
+<a class="jxr_linenumber" name="L151" href="#L151">151</a>                 context.setAttribute(HttpClientContext.HTTP_ROUTE, route);
+<a class="jxr_linenumber" name="L152" href="#L152">152</a>                 context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
+<a class="jxr_linenumber" name="L154" href="#L154">154</a>                 httpProcessor.process(request, request.getEntity(), context);
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> 
+<a class="jxr_linenumber" name="L156" href="#L156">156</a>                 <strong class="jxr_keyword">if</strong> (!request.containsHeader(HttpHeaders.AUTHORIZATION)) {
+<a class="jxr_linenumber" name="L157" href="#L157">157</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
+<a class="jxr_linenumber" name="L158" href="#L158">158</a>                         log.debug(exchangeId + <span class="jxr_string">": target auth state: "</span> + targetAuthExchange.getState());
+<a class="jxr_linenumber" name="L159" href="#L159">159</a>                     }
+<a class="jxr_linenumber" name="L160" href="#L160">160</a>                     authenticator.addAuthResponse(target, ChallengeType.TARGET, request, targetAuthExchange, context);
+<a class="jxr_linenumber" name="L161" href="#L161">161</a>                 }
+<a class="jxr_linenumber" name="L162" href="#L162">162</a>                 <strong class="jxr_keyword">if</strong> (!request.containsHeader(HttpHeaders.PROXY_AUTHORIZATION) &amp;&amp; !route.isTunnelled()) {
+<a class="jxr_linenumber" name="L163" href="#L163">163</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
+<a class="jxr_linenumber" name="L164" href="#L164">164</a>                         log.debug(exchangeId + <span class="jxr_string">": proxy auth state: "</span> + proxyAuthExchange.getState());
+<a class="jxr_linenumber" name="L165" href="#L165">165</a>                     }
+<a class="jxr_linenumber" name="L166" href="#L166">166</a>                     authenticator.addAuthResponse(proxy, ChallengeType.PROXY, request, proxyAuthExchange, context);
+<a class="jxr_linenumber" name="L167" href="#L167">167</a>                 }
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
+<a class="jxr_linenumber" name="L169" href="#L169">169</a>                 <strong class="jxr_keyword">final</strong> ClassicHttpResponse response = chain.proceed(request, scope);
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> 
+<a class="jxr_linenumber" name="L171" href="#L171">171</a>                 context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
+<a class="jxr_linenumber" name="L172" href="#L172">172</a>                 httpProcessor.process(response, response.getEntity(), context);
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> 
+<a class="jxr_linenumber" name="L174" href="#L174">174</a>                 <strong class="jxr_keyword">if</strong> (Method.TRACE.isSame(request.getMethod())) {
+<a class="jxr_linenumber" name="L175" href="#L175">175</a>                     <em class="jxr_comment">// Do not perform authentication for TRACE request</em>
+<a class="jxr_linenumber" name="L176" href="#L176">176</a>                     <strong class="jxr_keyword">return</strong> response;
+<a class="jxr_linenumber" name="L177" href="#L177">177</a>                 }
+<a class="jxr_linenumber" name="L178" href="#L178">178</a>                 <strong class="jxr_keyword">final</strong> HttpEntity requestEntity = request.getEntity();
+<a class="jxr_linenumber" name="L179" href="#L179">179</a>                 <strong class="jxr_keyword">if</strong> (requestEntity != <strong class="jxr_keyword">null</strong> &amp;&amp; !requestEntity.isRepeatable()) {
+<a class="jxr_linenumber" name="L180" href="#L180">180</a>                     <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
+<a class="jxr_linenumber" name="L181" href="#L181">181</a>                         log.debug(exchangeId + <span class="jxr_string">": Cannot retry non-repeatable request"</span>);
+<a class="jxr_linenumber" name="L182" href="#L182">182</a>                     }
+<a class="jxr_linenumber" name="L183" href="#L183">183</a>                     <strong class="jxr_keyword">return</strong> response;
+<a class="jxr_linenumber" name="L184" href="#L184">184</a>                 }
+<a class="jxr_linenumber" name="L185" href="#L185">185</a>                 <strong class="jxr_keyword">if</strong> (needAuthentication(targetAuthExchange, proxyAuthExchange, route, request, response, context)) {
+<a class="jxr_linenumber" name="L186" href="#L186">186</a>                     <em class="jxr_comment">// Make sure the response body is fully consumed, if present</em>
+<a class="jxr_linenumber" name="L187" href="#L187">187</a>                     <strong class="jxr_keyword">final</strong> HttpEntity responseEntity = response.getEntity();
+<a class="jxr_linenumber" name="L188" href="#L188">188</a>                     <strong class="jxr_keyword">if</strong> (execRuntime.isConnectionReusable()) {
+<a class="jxr_linenumber" name="L189" href="#L189">189</a>                         EntityUtils.consume(responseEntity);
+<a class="jxr_linenumber" name="L190" href="#L190">190</a>                     } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L191" href="#L191">191</a>                         execRuntime.disconnectEndpoint();
+<a class="jxr_linenumber" name="L192" href="#L192">192</a>                         <strong class="jxr_keyword">if</strong> (proxyAuthExchange.getState() == AuthExchange.State.SUCCESS
+<a class="jxr_linenumber" name="L193" href="#L193">193</a>                                 &amp;&amp; proxyAuthExchange.isConnectionBased()) {
+<a class="jxr_linenumber" name="L194" href="#L194">194</a>                             <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
+<a class="jxr_linenumber" name="L195" href="#L195">195</a>                                 log.debug(exchangeId + <span class="jxr_string">": resetting proxy auth state"</span>);
+<a class="jxr_linenumber" name="L196" href="#L196">196</a>                             }
+<a class="jxr_linenumber" name="L197" href="#L197">197</a>                             proxyAuthExchange.reset();
+<a class="jxr_linenumber" name="L198" href="#L198">198</a>                         }
+<a class="jxr_linenumber" name="L199" href="#L199">199</a>                         <strong class="jxr_keyword">if</strong> (targetAuthExchange.getState() == AuthExchange.State.SUCCESS
+<a class="jxr_linenumber" name="L200" href="#L200">200</a>                                 &amp;&amp; targetAuthExchange.isConnectionBased()) {
+<a class="jxr_linenumber" name="L201" href="#L201">201</a>                             <strong class="jxr_keyword">if</strong> (log.isDebugEnabled()) {
+<a class="jxr_linenumber" name="L202" href="#L202">202</a>                                 log.debug(exchangeId + <span class="jxr_string">": resetting target auth state"</span>);
+<a class="jxr_linenumber" name="L203" href="#L203">203</a>                             }
+<a class="jxr_linenumber" name="L204" href="#L204">204</a>                             targetAuthExchange.reset();
+<a class="jxr_linenumber" name="L205" href="#L205">205</a>                         }
+<a class="jxr_linenumber" name="L206" href="#L206">206</a>                     }
+<a class="jxr_linenumber" name="L207" href="#L207">207</a>                     <em class="jxr_comment">// Reset request headers</em>
+<a class="jxr_linenumber" name="L208" href="#L208">208</a>                     <strong class="jxr_keyword">final</strong> ClassicHttpRequest original = scope.originalRequest;
+<a class="jxr_linenumber" name="L209" href="#L209">209</a>                     request.setHeaders();
+<a class="jxr_linenumber" name="L210" href="#L210">210</a>                     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Iterator&lt;Header&gt; it = original.headerIterator(); it.hasNext(); ) {
+<a class="jxr_linenumber" name="L211" href="#L211">211</a>                         request.addHeader(it.next());
+<a class="jxr_linenumber" name="L212" href="#L212">212</a>                     }
+<a class="jxr_linenumber" name="L213" href="#L213">213</a>                 } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L214" href="#L214">214</a>                     <strong class="jxr_keyword">return</strong> response;
+<a class="jxr_linenumber" name="L215" href="#L215">215</a>                 }
+<a class="jxr_linenumber" name="L216" href="#L216">216</a>             }
+<a class="jxr_linenumber" name="L217" href="#L217">217</a>         } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> HttpException ex) {
+<a class="jxr_linenumber" name="L218" href="#L218">218</a>             execRuntime.discardEndpoint();
+<a class="jxr_linenumber" name="L219" href="#L219">219</a>             <strong class="jxr_keyword">throw</strong> ex;
+<a class="jxr_linenumber" name="L220" href="#L220">220</a>         } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> RuntimeException | IOException ex) {
+<a class="jxr_linenumber" name="L221" href="#L221">221</a>             execRuntime.discardEndpoint();
+<a class="jxr_linenumber" name="L222" href="#L222">222</a>             <strong class="jxr_keyword">if</strong> (proxyAuthExchange.isConnectionBased()) {
+<a class="jxr_linenumber" name="L223" href="#L223">223</a>                 proxyAuthExchange.reset();
+<a class="jxr_linenumber" name="L224" href="#L224">224</a>             }
+<a class="jxr_linenumber" name="L225" href="#L225">225</a>             <strong class="jxr_keyword">if</strong> (targetAuthExchange.isConnectionBased()) {
+<a class="jxr_linenumber" name="L226" href="#L226">226</a>                 targetAuthExchange.reset();
+<a class="jxr_linenumber" name="L227" href="#L227">227</a>             }
+<a class="jxr_linenumber" name="L228" href="#L228">228</a>             <strong class="jxr_keyword">throw</strong> ex;
+<a class="jxr_linenumber" name="L229" href="#L229">229</a>         }
+<a class="jxr_linenumber" name="L230" href="#L230">230</a>     }
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> 
+<a class="jxr_linenumber" name="L232" href="#L232">232</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> needAuthentication(
+<a class="jxr_linenumber" name="L233" href="#L233">233</a>             <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> targetAuthExchange,
+<a class="jxr_linenumber" name="L234" href="#L234">234</a>             <strong class="jxr_keyword">final</strong> <a name="AuthExchange" href="../../../../../../../org/apache/hc/client5/http/auth/AuthExchange.html#AuthExchange">AuthExchange</a> proxyAuthExchange,
+<a class="jxr_linenumber" name="L235" href="#L235">235</a>             <strong class="jxr_keyword">final</strong> <a name="HttpRoute" href="../../../../../../../org/apache/hc/client5/http/HttpRoute.html#HttpRoute">HttpRoute</a> route,
+<a class="jxr_linenumber" name="L236" href="#L236">236</a>             <strong class="jxr_keyword">final</strong> ClassicHttpRequest request,
+<a class="jxr_linenumber" name="L237" href="#L237">237</a>             <strong class="jxr_keyword">final</strong> HttpResponse response,
+<a class="jxr_linenumber" name="L238" href="#L238">238</a>             <strong class="jxr_keyword">final</strong> <a name="HttpClientContext" href="../../../../../../../org/apache/hc/client5/http/protocol/HttpClientContext.html#HttpClientContext">HttpClientContext</a> context) {
+<a class="jxr_linenumber" name="L239" href="#L239">239</a>         <strong class="jxr_keyword">final</strong> <a name="RequestConfig" href="../../../../../../../org/apache/hc/client5/http/config/RequestConfig.html#RequestConfig">RequestConfig</a> config = context.getRequestConfig();
+<a class="jxr_linenumber" name="L240" href="#L240">240</a>         <strong class="jxr_keyword">if</strong> (config.isAuthenticationEnabled()) {
+<a class="jxr_linenumber" name="L241" href="#L241">241</a>             <strong class="jxr_keyword">final</strong> HttpHost target = AuthSupport.resolveAuthTarget(request, route);
+<a class="jxr_linenumber" name="L242" href="#L242">242</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> targetAuthRequested = authenticator.isChallenged(
+<a class="jxr_linenumber" name="L243" href="#L243">243</a>                     target, ChallengeType.TARGET, response, targetAuthExchange, context);
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> 
+<a class="jxr_linenumber" name="L245" href="#L245">245</a>             HttpHost proxy = route.getProxyHost();
+<a class="jxr_linenumber" name="L246" href="#L246">246</a>             <em class="jxr_comment">// if proxy is not set use target host instead</em>
+<a class="jxr_linenumber" name="L247" href="#L247">247</a>             <strong class="jxr_keyword">if</strong> (proxy == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L248" href="#L248">248</a>                 proxy = route.getTargetHost();
+<a class="jxr_linenumber" name="L249" href="#L249">249</a>             }
+<a class="jxr_linenumber" name="L250" href="#L250">250</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> proxyAuthRequested = authenticator.isChallenged(
+<a class="jxr_linenumber" name="L251" href="#L251">251</a>                     proxy, ChallengeType.PROXY, response, proxyAuthExchange, context);
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
+<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <strong class="jxr_keyword">if</strong> (targetAuthRequested) {
+<a class="jxr_linenumber" name="L254" href="#L254">254</a>                 <strong class="jxr_keyword">return</strong> authenticator.updateAuthState(target, ChallengeType.TARGET, response,
+<a class="jxr_linenumber" name="L255" href="#L255">255</a>                         targetAuthStrategy, targetAuthExchange, context);
 <a class="jxr_linenumber" name="L256" href="#L256">256</a>             }
-<a class="jxr_linenumber" name="L257" href="#L257">257</a>         }
-<a class="jxr_linenumber" name="L258" href="#L258">258</a>         <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L259" href="#L259">259</a>     }
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> 
-<a class="jxr_linenumber" name="L261" href="#L261">261</a> }
+<a class="jxr_linenumber" name="L257" href="#L257">257</a>             <strong class="jxr_keyword">if</strong> (proxyAuthRequested) {
+<a class="jxr_linenumber" name="L258" href="#L258">258</a>                 <strong class="jxr_keyword">return</strong> authenticator.updateAuthState(proxy, ChallengeType.PROXY, response,
+<a class="jxr_linenumber" name="L259" href="#L259">259</a>                         proxyAuthStrategy, proxyAuthExchange, context);
+<a class="jxr_linenumber" name="L260" href="#L260">260</a>             }
+<a class="jxr_linenumber" name="L261" href="#L261">261</a>         }
+<a class="jxr_linenumber" name="L262" href="#L262">262</a>         <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L263" href="#L263">263</a>     }
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> 
+<a class="jxr_linenumber" name="L265" href="#L265">265</a> }
 </pre>
 <hr/>
 <div id="footer">Copyright &#169; 1999&#x2013;2020 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>