Skip to content

Commit 24f6c50

Browse files
authored
For Stream adapter, always close the stream (using try-with-resources) (#394)
This is almost a bug fix for the prior json array style output.
1 parent e304733 commit 24f6c50

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

jsonb/src/main/java/io/avaje/jsonb/core/StreamAdapter.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,19 @@ final class StreamAdapter<T> implements DJsonClosable<Stream<T>>, JsonAdapter<St
2222
}
2323

2424
@Override
25-
public void toJson(JsonWriter writer, Stream<T> value) {
26-
if (lineDelimited) {
27-
writer.pretty(false);
28-
value.forEach(bean -> {
29-
elementAdapter.toJson(writer, bean);
30-
writer.writeNewLine();
31-
});
32-
} else {
33-
writer.beginArray();
34-
value.forEach(bean -> elementAdapter.toJson(writer, bean));
35-
writer.endArray();
25+
public void toJson(JsonWriter writer, Stream<T> stream) {
26+
try (stream) {
27+
if (lineDelimited) {
28+
writer.pretty(false);
29+
stream.forEach(bean -> {
30+
elementAdapter.toJson(writer, bean);
31+
writer.writeNewLine();
32+
});
33+
} else {
34+
writer.beginArray();
35+
stream.forEach(bean -> elementAdapter.toJson(writer, bean));
36+
writer.endArray();
37+
}
3638
}
3739
}
3840

0 commit comments

Comments
 (0)