abdullah alamoudi has submitted this change and it was merged. Change subject: [NO ISSUE][TEST] Close HTTP requests upon thread interruption ......................................................................
[NO ISSUE][TEST] Close HTTP requests upon thread interruption - user model changes: no - storage format changes: no - interface changes: no Details: - Ensure Http client in tests closes on interrupt. Change-Id: I39e43b8136df6b6a7965d033ca8892feda7394d4 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2458 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java 1 file changed, 17 insertions(+), 4 deletions(-) Approvals: Anon. E. Moose #1000171: Jenkins: Verified; No violations found; ; Verified Michael Blow: Looks good to me, approved diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java index 48603a5..8c0a3d4 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java @@ -85,6 +85,7 @@ import org.apache.http.client.methods.RequestBuilder; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.StandardHttpRequestRetryHandler; import org.apache.http.protocol.HttpContext; @@ -477,13 +478,25 @@ } protected HttpResponse executeHttpRequest(HttpUriRequest method) throws Exception { - HttpClient client = HttpClients.custom().setRetryHandler(StandardHttpRequestRetryHandler.INSTANCE).build(); + // https://issues.apache.org/jira/browse/ASTERIXDB-2315 + ExecutorService executor = Executors.newSingleThreadExecutor(); + CloseableHttpClient client = + HttpClients.custom().setRetryHandler(StandardHttpRequestRetryHandler.INSTANCE).build(); + Future<HttpResponse> future = executor.submit(() -> { + try { + return client.execute(method, getHttpContext()); + } catch (Exception e) { + GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, "Failure executing {}", method, e); + throw e; + } + }); try { - return client.execute(method, getHttpContext()); + return future.get(); } catch (Exception e) { - GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e); - e.printStackTrace(); + client.close(); throw e; + } finally { + executor.shutdownNow(); } } -- To view, visit https://asterix-gerrit.ics.uci.edu/2458 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I39e43b8136df6b6a7965d033ca8892feda7394d4 Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: abdullah alamoudi <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
