Skip to content

Commit fd51a22

Browse files
authored
Merge pull request #158 from yfre/close_json_writers
bugfix: close JsonWriters
2 parents 915efec + efa62a1 commit fd51a22

File tree

4 files changed

+16
-12
lines changed

4 files changed

+16
-12
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
## Fixes
33
* Log accessory names instead of futures. [#150](https://github.com/hap-java/HAP-Java/issues/150)
44
* Fix rotation speed data type (BREAKING API CHANGE). According to HAP specification it must be float
5+
* Close JsonWriters [#149](https://github.com/hap-java/HAP-Java/issues/149)
56

67
# HAP-Java 2.0.0
78
* major refactoring to support optional characteristics

src/main/java/io/github/hapjava/server/impl/json/AccessoryController.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import javax.json.JsonArrayBuilder;
1919
import javax.json.JsonObject;
2020
import javax.json.JsonObjectBuilder;
21+
import javax.json.JsonWriter;
2122

2223
public class AccessoryController {
2324

@@ -64,9 +65,9 @@ public HttpResponse listing() throws Exception {
6465
.add("services", serviceArrayBuilders.get(accessory.getId())));
6566
}
6667

67-
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
68-
Json.createWriter(baos)
69-
.write(Json.createObjectBuilder().add("accessories", accessories).build());
68+
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
69+
JsonWriter jsonWriter = Json.createWriter(baos)) {
70+
jsonWriter.write(Json.createObjectBuilder().add("accessories", accessories).build());
7071
return new HapJsonResponse(baos.toByteArray());
7172
}
7273
}

src/main/java/io/github/hapjava/server/impl/json/CharacteristicsController.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ public HttpResponse get(HttpRequest request) throws Exception {
5858
"Accessory " + aid + " has no characteristics or does not exist. Request: " + uri);
5959
}
6060
}
61-
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
62-
Json.createWriter(baos)
63-
.write(
64-
Json.createObjectBuilder().add("characteristics", characteristics.build()).build());
61+
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
62+
JsonWriter jsonWriter = Json.createWriter(baos)) {
63+
jsonWriter.write(
64+
Json.createObjectBuilder().add("characteristics", characteristics.build()).build());
6565
return new HapJsonResponse(baos.toByteArray());
6666
}
6767
}

src/main/java/io/github/hapjava/server/impl/json/EventController.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import javax.json.JsonArrayBuilder;
1010
import javax.json.JsonObject;
1111
import javax.json.JsonObjectBuilder;
12+
import javax.json.JsonWriter;
1213

1314
public class EventController {
1415

@@ -24,8 +25,9 @@ public HttpResponse getMessage(int accessoryId, int iid, EventableCharacteristic
2425

2526
JsonObject data = Json.createObjectBuilder().add("characteristics", characteristics).build();
2627

27-
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
28-
Json.createWriter(baos).write(data);
28+
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
29+
JsonWriter jsonWriter = Json.createWriter(baos)) {
30+
jsonWriter.write(data);
2931
byte[] dataBytes = baos.toByteArray();
3032

3133
return new EventResponse(dataBytes);
@@ -44,9 +46,9 @@ public HttpResponse getMessage(ArrayList<PendingNotification> notifications) thr
4446
}
4547

4648
JsonObject data = Json.createObjectBuilder().add("characteristics", characteristics).build();
47-
48-
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
49-
Json.createWriter(baos).write(data);
49+
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
50+
JsonWriter jsonWriter = Json.createWriter(baos)) {
51+
jsonWriter.write(data);
5052
byte[] dataBytes = baos.toByteArray();
5153

5254
return new EventResponse(dataBytes);

0 commit comments

Comments
 (0)