File tree 3 files changed +24
-10
lines changed
main/java/org/apache/hc/client5/http/impl
test/java/org/apache/hc/client5/http/impl/classic
3 files changed +24
-10
lines changed Original file line number Diff line number Diff line change @@ -219,12 +219,15 @@ protected <T> Future<T> doExecute(
219
219
setupContext (clientContext );
220
220
221
221
final HttpHost resolvedTarget = target != null ? target : RoutingSupport .determineHost (request );
222
- if (request .getScheme () == null ) {
223
- request .setScheme (resolvedTarget .getSchemeName ());
224
- }
225
- if (request .getAuthority () == null ) {
226
- request .setAuthority (new URIAuthority (resolvedTarget ));
222
+ if (resolvedTarget != null ) {
223
+ if (request .getScheme () == null ) {
224
+ request .setScheme (resolvedTarget .getSchemeName ());
225
+ }
226
+ if (request .getAuthority () == null ) {
227
+ request .setAuthority (new URIAuthority (resolvedTarget ));
228
+ }
227
229
}
230
+
228
231
final HttpRoute route = determineRoute (
229
232
resolvedTarget ,
230
233
request ,
Original file line number Diff line number Diff line change @@ -161,11 +161,13 @@ protected CloseableHttpResponse doExecute(
161
161
setupContext (localcontext );
162
162
163
163
final HttpHost resolvedTarget = target != null ? target : RoutingSupport .determineHost (request );
164
- if (request .getScheme () == null ) {
165
- request .setScheme (resolvedTarget .getSchemeName ());
166
- }
167
- if (request .getAuthority () == null ) {
168
- request .setAuthority (new URIAuthority (resolvedTarget ));
164
+ if (resolvedTarget != null ) {
165
+ if (request .getScheme () == null ) {
166
+ request .setScheme (resolvedTarget .getSchemeName ());
167
+ }
168
+ if (request .getAuthority () == null ) {
169
+ request .setAuthority (new URIAuthority (resolvedTarget ));
170
+ }
169
171
}
170
172
final HttpRoute route = determineRoute (
171
173
resolvedTarget ,
Original file line number Diff line number Diff line change 42
42
import org .apache .hc .client5 .http .io .HttpClientConnectionManager ;
43
43
import org .apache .hc .client5 .http .protocol .HttpClientContext ;
44
44
import org .apache .hc .client5 .http .routing .HttpRoutePlanner ;
45
+ import org .apache .hc .core5 .http .ClassicHttpRequest ;
45
46
import org .apache .hc .core5 .http .HttpException ;
46
47
import org .apache .hc .core5 .http .HttpHost ;
47
48
import org .apache .hc .core5 .http .config .Lookup ;
48
49
import org .apache .hc .core5 .http .impl .io .HttpRequestExecutor ;
50
+ import org .apache .hc .core5 .http .io .support .ClassicRequestBuilder ;
49
51
import org .apache .hc .core5 .http .message .BasicClassicHttpResponse ;
50
52
import org .junit .jupiter .api .Assertions ;
51
53
import org .junit .jupiter .api .BeforeEach ;
@@ -233,4 +235,11 @@ void testClientCloseIOException() throws Exception {
233
235
Mockito .verify (closeable2 ).close ();
234
236
}
235
237
238
+ @ Test
239
+ void testDoExecuteThrowsWhenNoTargetOrHost () {
240
+ final ClassicHttpRequest request = ClassicRequestBuilder .get ("/foo" ).build ();
241
+ final HttpClientContext context = HttpClientContext .create ();
242
+ Assertions .assertThrows (NullPointerException .class , () ->
243
+ client .execute (null , request , context ));
244
+ }
236
245
}
You can’t perform that action at this time.
0 commit comments