Skip to content

Commit 31aaebf

Browse files
authored
Merge pull request #249 from kobylynskyi/fix-graphqlrequest-deser
Fix Subscription GraphQLRequest deserialization
2 parents 0751236 + 836c972 commit 31aaebf

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/subscriptions/GraphQLSubscriptionMapper.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import graphql.ExecutionResult;
55
import graphql.kickstart.execution.GraphQLObjectMapper;
66
import graphql.kickstart.execution.GraphQLRequest;
7+
import java.io.IOException;
78
import java.util.Map;
9+
import java.util.Objects;
810
import lombok.RequiredArgsConstructor;
911

1012
@RequiredArgsConstructor
@@ -13,7 +15,12 @@ public class GraphQLSubscriptionMapper {
1315
private final GraphQLObjectMapper graphQLObjectMapper;
1416

1517
public GraphQLRequest readGraphQLRequest(Object payload) {
16-
return graphQLObjectMapper.getJacksonMapper().convertValue(payload, GraphQLRequest.class);
18+
Objects.requireNonNull(payload, "Payload is required");
19+
try {
20+
return graphQLObjectMapper.readGraphQLRequest(payload.toString());
21+
} catch (IOException e) {
22+
throw new RuntimeException(e);
23+
}
1724
}
1825

1926
public ExecutionResult sanitizeErrors(ExecutionResult executionResult) {

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/subscriptions/apollo/SubscriptionStartCommand.java

-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import graphql.kickstart.execution.subscriptions.GraphQLSubscriptionMapper;
1111
import graphql.kickstart.execution.subscriptions.SubscriptionSession;
1212
import java.util.Collection;
13-
import java.util.Objects;
1413
import java.util.concurrent.CompletableFuture;
1514
import lombok.RequiredArgsConstructor;
1615
import lombok.extern.slf4j.Slf4j;
@@ -33,7 +32,6 @@ public void apply(SubscriptionSession session, OperationMessage message) {
3332
}
3433

3534
private CompletableFuture<ExecutionResult> executeAsync(Object payload, SubscriptionSession session) {
36-
Objects.requireNonNull(payload, "Payload is required");
3735
GraphQLRequest graphQLRequest = mapper.readGraphQLRequest(payload);
3836

3937
GraphQLSingleInvocationInput invocationInput = invocationInputFactory.create(graphQLRequest, session);

graphql-java-servlet/src/main/java/graphql/kickstart/servlet/subscriptions/FallbackSubscriptionConsumer.java

-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import graphql.kickstart.execution.subscriptions.GraphQLSubscriptionInvocationInputFactory;
88
import graphql.kickstart.execution.subscriptions.GraphQLSubscriptionMapper;
99
import graphql.kickstart.execution.subscriptions.SubscriptionSession;
10-
import java.util.Objects;
1110
import java.util.UUID;
1211
import java.util.concurrent.CompletableFuture;
1312
import java.util.function.Consumer;
@@ -31,7 +30,6 @@ public void accept(String text) {
3130
}
3231

3332
private CompletableFuture<ExecutionResult> executeAsync(Object payload, SubscriptionSession session) {
34-
Objects.requireNonNull(payload, "Payload is required");
3533
GraphQLRequest graphQLRequest = mapper.readGraphQLRequest(payload);
3634

3735
GraphQLSingleInvocationInput invocationInput = invocationInputFactory.create(graphQLRequest, session);

0 commit comments

Comments
 (0)