You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2021/07/01 12:09:41 UTC
[unomi] 01/01: Fix GraphQLProvider NPE for missing event types
This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch UNOMI-495-graphql-eventtype-npe
in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 53e3b97758d78fde89393f798afac33eb93bfa32
Author: Serge Huber <sh...@jahia.com>
AuthorDate: Thu Jul 1 14:09:32 2021 +0200
Fix GraphQLProvider NPE for missing event types
---
.../apache/unomi/graphql/schema/GraphQLSchemaProvider.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
index df968f7..1f2d9bb 100644
--- a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
+++ b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/schema/GraphQLSchemaProvider.java
@@ -69,6 +69,8 @@ import org.apache.unomi.graphql.types.output.RootMutation;
import org.apache.unomi.graphql.types.output.RootQuery;
import org.apache.unomi.graphql.utils.ReflectionUtil;
import org.apache.unomi.graphql.utils.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collection;
@@ -86,6 +88,8 @@ import static graphql.schema.GraphQLObjectType.newObject;
public class GraphQLSchemaProvider {
+ private static final Logger logger = LoggerFactory.getLogger(GraphQLSchemaProvider.class.getName());
+
private final ProfileService profileService;
private final EventTypeRegistry eventTypeRegistry;
@@ -577,10 +581,15 @@ public class GraphQLSchemaProvider {
final Collection<EventType> unomiEventTypes = eventTypeRegistry.getAll();
unomiEventTypes.forEach(eventType -> {
final String typeName = UnomiToGraphQLConverter.convertEventType(eventType.getType());
+ final GraphQLInputType eventInputType = (GraphQLInputType) getFromTypeRegistry(typeName + "Input");
+ if (eventInputType == null) {
+ logger.warn("Couldn't find event input type {}", typeName + "Input, will not add it as a field.");
+ return;
+ }
builder.field(GraphQLInputObjectField.newInputObjectField()
.name(StringUtils.decapitalize(typeName))
- .type((GraphQLInputType) getFromTypeRegistry(typeName + "Input"))
+ .type(eventInputType)
.build());
});