Skip to content

Commit 252bf42

Browse files
authored
Merge pull request #2615 from aleksei-griaznov/main
Refactor HttpAPIClientHelper to improve response cleanup handling
2 parents d70d5b7 + 593ab6d commit 252bf42

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

client-v2/src/main/java/com/clickhouse/client/api/Client.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1605,6 +1605,7 @@ public CompletableFuture<QueryResponse> query(String sqlQuery, Map<String, Objec
16051605
if (httpResponse.getCode() == HttpStatus.SC_SERVICE_UNAVAILABLE) {
16061606
LOG.warn("Failed to get response. Server returned {}. Retrying. (Duration: {})", System.nanoTime() - startTime, httpResponse.getCode());
16071607
selectedEndpoint = getNextAliveNode();
1608+
HttpAPIClientHelper.closeQuietly(httpResponse);
16081609
continue;
16091610
}
16101611

@@ -1625,7 +1626,7 @@ public CompletableFuture<QueryResponse> query(String sqlQuery, Map<String, Objec
16251626
return new QueryResponse(httpResponse, responseFormat, requestSettings, metrics);
16261627

16271628
} catch (Exception e) {
1628-
httpClientHelper.closeQuietly(httpResponse);
1629+
HttpAPIClientHelper.closeQuietly(httpResponse);
16291630
lastException = httpClientHelper.wrapException(String.format("Query request failed (Attempt: %s/%s - Duration: %s)",
16301631
(i + 1), (retries + 1), System.nanoTime() - startTime), e);
16311632
if (httpClientHelper.shouldRetry(e, requestSettings.getAllSettings())) {

client-v2/src/main/java/com/clickhouse/client/api/internal/HttpAPIClientHelper.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,10 +473,14 @@ public ClassicHttpResponse executeRequest(Endpoint server, Map<String, Object> r
473473
closeQuietly(httpResponse);
474474
LOG.warn("Failed to connect to '{}': {}", server.getBaseURL(), e.getMessage());
475475
throw e;
476+
} catch (Exception e) {
477+
closeQuietly(httpResponse);
478+
LOG.debug("Failed to execute request to '{}': {}", server.getBaseURL(), e.getMessage(), e);
479+
throw e;
476480
}
477481
}
478482

479-
public void closeQuietly(ClassicHttpResponse httpResponse) {
483+
public static void closeQuietly(ClassicHttpResponse httpResponse) {
480484
if (httpResponse != null) {
481485
try {
482486
httpResponse.close();

0 commit comments

Comments
 (0)