Skip to content

Commit 7787a6f

Browse files
authored
fix: always close pure OkHttp3 response (#151)
1 parent 41ac28a commit 7787a6f

File tree

6 files changed

+32
-24
lines changed

6 files changed

+32
-24
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
### API
77
1. [#139](https://github.com/influxdata/influxdb-client-java/pull/148): Changed default port from 9999 to 8086
88

9+
### Bug Fixes
10+
1. [#151](https://github.com/influxdata/influxdb-client-java/pull/151): Fixed closing OkHttp3 response body
11+
912
## 1.11.0 [2020-08-14]
1013

1114
### Features

client-core/src/test/java/com/influxdb/internal/ITUserAgentInterceptor.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import okhttp3.OkHttpClient;
2929
import okhttp3.Request;
30+
import okhttp3.Response;
3031
import okhttp3.mockwebserver.MockResponse;
3132
import okhttp3.mockwebserver.RecordedRequest;
3233
import org.assertj.core.api.Assertions;
@@ -57,13 +58,14 @@ void setUp() {
5758
@Test
5859
public void userAgent() throws IOException, InterruptedException {
5960

60-
mockServer.enqueue(new MockResponse() );
61+
mockServer.enqueue(new MockResponse());
6162

6263
Request request = new Request.Builder()
6364
.url(url)
6465
.build();
6566

66-
client.newCall(request).execute();
67+
Response response = client.newCall(request).execute();
68+
response.close();
6769

6870
RecordedRequest recordedRequest = mockServer.takeRequest();
6971
String userAgent = recordedRequest.getHeader("User-Agent");

client-test/src/main/java/com/influxdb/test/AbstractTest.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,7 @@ private void influxDBRequest(@Nonnull final Request request) {
159159
Assertions.assertThat(request).isNotNull();
160160

161161
OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
162-
Response response;
163-
try {
164-
response = okHttpClient.newCall(request).execute();
162+
try (Response response = okHttpClient.newCall(request).execute()) {
165163
Assertions.assertThat(response.isSuccessful())
166164
.withFailMessage("Failed response <%s>. Body: <%s>", response, response.body())
167165
.isTrue();

client/src/main/java/com/influxdb/client/internal/AuthenticateInterceptor.java

+12-14
Original file line numberDiff line numberDiff line change
@@ -122,21 +122,18 @@ void initToken(@Nonnull final OkHttpClient okHttpClient) {
122122
.post(RequestBody.create(null, ""))
123123
.build();
124124

125-
Response authResponse;
126-
try {
127-
authResponse = this.okHttpClient.newCall(authRequest).execute();
128-
} catch (IOException e) {
129-
LOG.log(Level.WARNING, "Cannot retrieve the Session token!", e);
130-
return;
131-
}
125+
try (Response authResponse = this.okHttpClient.newCall(authRequest).execute()) {
132126

133-
Cookie sessionCookie = Cookie.parseAll(authRequest.url(), authResponse.headers()).stream()
134-
.filter(cookie -> "session".equals(cookie.name()))
135-
.findFirst()
136-
.orElse(null);
127+
Cookie sessionCookie = Cookie.parseAll(authRequest.url(), authResponse.headers()).stream()
128+
.filter(cookie -> "session".equals(cookie.name()))
129+
.findFirst()
130+
.orElse(null);
137131

138-
if (sessionCookie != null) {
139-
sessionToken = sessionCookie.value().toCharArray();
132+
if (sessionCookie != null) {
133+
sessionToken = sessionCookie.value().toCharArray();
134+
}
135+
} catch (IOException e) {
136+
LOG.log(Level.WARNING, "Cannot retrieve the Session token!", e);
140137
}
141138
}
142139
}
@@ -162,7 +159,8 @@ void signout() throws IOException {
162159
.post(RequestBody.create(null, ""))
163160
.build();
164161

165-
this.okHttpClient.newCall(authRequest).execute();
162+
Response response = this.okHttpClient.newCall(authRequest).execute();
163+
response.close();
166164
}
167165

168166
@Nonnull

client/src/test/java/com/influxdb/client/internal/AuthenticateInterceptorTest.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import okhttp3.Credentials;
3232
import okhttp3.OkHttpClient;
3333
import okhttp3.Request;
34+
import okhttp3.Response;
3435
import okhttp3.mockwebserver.MockResponse;
3536
import okhttp3.mockwebserver.RecordedRequest;
3637
import org.assertj.core.api.Assertions;
@@ -67,7 +68,8 @@ void authorizationNone() throws IOException, InterruptedException {
6768
.get()
6869
.build();
6970

70-
buildOkHttpClient(options).newCall(request).execute();
71+
Response response = buildOkHttpClient(options).newCall(request).execute();
72+
response.close();
7173

7274
Assertions.assertThat(mockServer.getRequestCount()).isEqualTo(1);
7375

@@ -103,7 +105,8 @@ void authorizationSession() throws IOException, InterruptedException {
103105
.get()
104106
.build();
105107

106-
buildOkHttpClient(options).newCall(request).execute();
108+
Response response = buildOkHttpClient(options).newCall(request).execute();
109+
response.close();
107110

108111
// Sign in request
109112
RecordedRequest requestToSignIn = mockServer.takeRequest();
@@ -138,7 +141,8 @@ void authorizationSessionWithoutCookie() throws IOException, InterruptedExceptio
138141
.get()
139142
.build();
140143

141-
buildOkHttpClient(options).newCall(request).execute();
144+
Response response = buildOkHttpClient(options).newCall(request).execute();
145+
response.close();
142146

143147
// Sign in request in init
144148
RecordedRequest requestToSignIn = mockServer.takeRequest();
@@ -213,7 +217,8 @@ void authorizationToken() throws IOException, InterruptedException {
213217
.get()
214218
.build();
215219

216-
buildOkHttpClient(options).newCall(request).execute();
220+
Response response = buildOkHttpClient(options).newCall(request).execute();
221+
response.close();
217222

218223
RecordedRequest recordedRequest = mockServer.takeRequest();
219224
Assertions.assertThat(recordedRequest.getHeader("Authorization")).isEqualTo("Token xyz");

client/src/test/java/com/influxdb/client/internal/GzipInterceptorTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import okhttp3.OkHttpClient;
3131
import okhttp3.Request;
3232
import okhttp3.RequestBody;
33+
import okhttp3.Response;
3334
import okhttp3.mockwebserver.MockResponse;
3435
import okhttp3.mockwebserver.RecordedRequest;
3536
import org.assertj.core.api.Assertions;
@@ -111,7 +112,8 @@ private RecordedRequest newCall(@Nonnull final String path) throws IOException,
111112
.post(RequestBody.create(MediaType.parse("application/json"), "{name: \"Tom Type\"}"))
112113
.build();
113114

114-
okHttpClient.newCall(request).execute();
115+
Response execute = okHttpClient.newCall(request).execute();
116+
execute.close();
115117

116118
return mockServer.takeRequest();
117119
}

0 commit comments

Comments
 (0)