Skip to content

Commit 0b9946c

Browse files
committed
Pass JsonFactory created in a constructor
1 parent cc5f49a commit 0b9946c

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

core/trino-main/src/main/java/io/trino/server/protocol/spooling/encoding/JsonQueryDataEncoder.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,12 @@ public class JsonQueryDataEncoder
4444
implements QueryDataEncoder
4545
{
4646
private boolean closed;
47-
48-
private static final JsonFactory JSON_FACTORY = jsonFactory();
4947
private static final String ENCODING = "json";
5048
private TypeEncoder[] typeEncoders;
5149
private int[] sourcePageChannels;
50+
private final JsonFactory factory;
5251

53-
public JsonQueryDataEncoder(Session session, List<OutputColumn> columns)
52+
public JsonQueryDataEncoder(Session session, List<OutputColumn> columns, JsonFactory factory)
5453
{
5554
this.typeEncoders = createTypeEncoders(session, requireNonNull(columns, "columns is null")
5655
.stream()
@@ -59,14 +58,15 @@ public JsonQueryDataEncoder(Session session, List<OutputColumn> columns)
5958
this.sourcePageChannels = requireNonNull(columns, "columns is null").stream()
6059
.mapToInt(OutputColumn::sourcePageChannel)
6160
.toArray();
61+
this.factory = requireNonNull(factory, "factory is null");
6262
}
6363

6464
@Override
6565
public DataAttributes encodeTo(OutputStream output, List<Page> pages)
6666
throws IOException
6767
{
6868
verify(!closed, "JsonQueryDataEncoder is already closed");
69-
try (CountingOutputStream wrapper = new CountingOutputStream(output); JsonGenerator generator = JSON_FACTORY.createGenerator(wrapper)) {
69+
try (CountingOutputStream wrapper = new CountingOutputStream(output); JsonGenerator generator = factory.createGenerator(wrapper)) {
7070
writePagesToJsonGenerator(e -> { throw e; }, generator, typeEncoders, sourcePageChannels, pages);
7171
return DataAttributes.builder()
7272
.set(SEGMENT_SIZE, toIntExact(wrapper.getCount()))
@@ -100,7 +100,6 @@ public static class Factory
100100
{
101101
protected final JsonFactory factory;
102102

103-
@Inject
104103
public Factory()
105104
{
106105
this.factory = jsonFactory();
@@ -109,7 +108,7 @@ public Factory()
109108
@Override
110109
public QueryDataEncoder create(Session session, List<OutputColumn> columns)
111110
{
112-
return new JsonQueryDataEncoder(session, columns);
111+
return new JsonQueryDataEncoder(session, columns, factory);
113112
}
114113

115114
@Override

0 commit comments

Comments
 (0)