Skip to content

Commit 8cf16ea

Browse files
committed
Close some resource leaks in Grid
1 parent a5a7bb0 commit 8cf16ea

File tree

3 files changed

+18
-23
lines changed

3 files changed

+18
-23
lines changed

java/server/src/org/openqa/grid/internal/utils/SelfRegisteringRemote.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.openqa.grid.internal.utils;
1919

20+
import com.google.common.io.CharStreams;
2021
import com.google.gson.JsonObject;
2122
import com.google.gson.JsonParser;
2223

@@ -43,6 +44,7 @@
4344
import java.io.BufferedReader;
4445
import java.io.IOException;
4546
import java.io.InputStreamReader;
47+
import java.io.Reader;
4648
import java.net.MalformedURLException;
4749
import java.net.URL;
4850
import java.security.InvalidParameterException;
@@ -370,14 +372,11 @@ private boolean isAlreadyRegistered(RegistrationRequest node) {
370372
}
371373

372374
private static JsonObject extractObject(HttpResponse resp) throws IOException {
373-
BufferedReader rd = new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
374-
StringBuilder s = new StringBuilder();
375-
String line;
376-
while ((line = rd.readLine()) != null) {
377-
s.append(line);
375+
try (Reader rd = new BufferedReader(new InputStreamReader(resp.getEntity().getContent()))) {
376+
StringBuilder s = new StringBuilder();
377+
CharStreams.copy(rd, s);
378+
return new JsonParser().parse(s.toString()).getAsJsonObject();
378379
}
379-
rd.close();
380-
return new JsonParser().parse(s.toString()).getAsJsonObject();
381380
}
382381

383382
}

java/server/src/org/openqa/grid/web/servlet/RegistrationServlet.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.openqa.grid.web.servlet;
1919

2020
import com.google.common.collect.Lists;
21+
import com.google.common.io.CharStreams;
2122
import com.google.gson.JsonArray;
2223
import com.google.gson.JsonElement;
2324
import com.google.gson.JsonObject;
@@ -71,17 +72,15 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
7172

7273
protected void process(HttpServletRequest request, HttpServletResponse response)
7374
throws IOException {
74-
BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream()));
75-
StringBuilder requestJsonString = new StringBuilder();
76-
String line;
77-
while ((line = rd.readLine()) != null) {
78-
requestJsonString.append(line);
75+
String requestJsonString;
76+
77+
try (BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream()))) {
78+
requestJsonString = CharStreams.toString(rd);
7979
}
80-
rd.close();
81-
log.fine("getting the following registration request : " + requestJsonString.toString());
80+
log.fine("getting the following registration request : " + requestJsonString);
8281

8382
// getting the settings from the registration
84-
JsonObject json = new JsonParser().parse(requestJsonString.toString()).getAsJsonObject();
83+
JsonObject json = new JsonParser().parse(requestJsonString).getAsJsonObject();
8584

8685
if (!json.has("configuration")) {
8786
// bad request. there must be a configuration for the proxy

java/server/src/org/openqa/grid/web/servlet/TestSessionStatusServlet.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.openqa.grid.web.servlet;
1919

20+
import com.google.common.io.CharStreams;
2021
import com.google.gson.JsonObject;
2122
import com.google.gson.JsonParser;
2223
import com.google.gson.JsonSyntaxException;
@@ -30,6 +31,7 @@
3031
import java.io.BufferedReader;
3132
import java.io.IOException;
3233
import java.io.InputStreamReader;
34+
import java.io.Reader;
3335

3436
import javax.servlet.ServletException;
3537
import javax.servlet.http.HttpServletRequest;
@@ -77,18 +79,13 @@ protected void process(HttpServletRequest request, HttpServletResponse response)
7779
private JsonObject getResponse(HttpServletRequest request) throws IOException {
7880
JsonObject requestJSON = null;
7981
if (request.getInputStream() != null) {
80-
BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream()));
81-
StringBuilder s = new StringBuilder();
82-
String line;
83-
while ((line = rd.readLine()) != null) {
84-
s.append(line);
82+
String json;
83+
try (Reader rd = new BufferedReader(new InputStreamReader(request.getInputStream()))) {
84+
json = CharStreams.toString(rd);
8585
}
86-
rd.close();
87-
String json = s.toString();
8886
if (!"".equals(json)) {
8987
requestJSON = new JsonParser().parse(json).getAsJsonObject();
9088
}
91-
9289
}
9390

9491
JsonObject res = new JsonObject();

0 commit comments

Comments
 (0)