Skip to content

Commit

Permalink
Merge pull request #1231 from fl4via/UNDERTOW-1929
Browse files Browse the repository at this point in the history
[UNDERTOW-1929] Prevent SocketTimeoutException by tuning up SoTimeout…
  • Loading branch information
fl4via committed Aug 5, 2021
2 parents 0c998f2 + 23094b5 commit 8de3e4b
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions core/src/test/java/io/undertow/testutils/TestHttpClient.java
Expand Up @@ -28,6 +28,7 @@
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.SyncBasicHttpParams;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
Expand Down Expand Up @@ -65,24 +66,39 @@ public boolean verify(String s, SSLSession sslSession) {
private static final List<TestHttpClient> instances = new CopyOnWriteArrayList<>();

public TestHttpClient() {
super(preventSocketTimeoutException(null));
instances.add(this);
}

public TestHttpClient(HttpParams params) {
super(params);
super(preventSocketTimeoutException(params));
instances.add(this);
}

public TestHttpClient(ClientConnectionManager conman) {
super(conman);
super(conman, preventSocketTimeoutException(null));
instances.add(this);
}

public TestHttpClient(ClientConnectionManager conman, HttpParams params) {
super(conman, params);
super(conman, preventSocketTimeoutException(params));
instances.add(this);
}

private static HttpParams preventSocketTimeoutException(HttpParams params) {
// UNDERTOW-1929 prevent the SocketTimeoutException that we see recurring
// in CI when running tests on Windows / proxy ajp mode
if (System.getProperty("os.name").startsWith("Windows") && DefaultServer.isProxy() && DefaultServer.isAjp()) {
if (params == null) {
params = new SyncBasicHttpParams();
setDefaultHttpParams(params);
}
HttpConnectionParams.setSoTimeout(params, 120000);
return params;
}
return params;
}

@Override
protected HttpRequestRetryHandler createHttpRequestRetryHandler() {
return new DefaultHttpRequestRetryHandler(0, false);
Expand Down

0 comments on commit 8de3e4b

Please sign in to comment.