Skip to content

Commit 58edfd6

Browse files
committed
Merge pull request graphql-java#60 from xuzb/master
Fix two NPEs and add test case
2 parents 8e29e85 + 67981cb commit 58edfd6

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

src/main/java/graphql/schema/GraphQLEnumType.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public Object coerceLiteral(Object input) {
3333
if (!(input instanceof EnumValue)) return null;
3434
EnumValue enumValue = (EnumValue) input;
3535
GraphQLEnumValueDefinition enumValueDefinition = valueDefinitionMap.get(enumValue.getName());
36+
if (enumValueDefinition == null) return null;
3637
if (enumValueDefinition.getValue() != null) return enumValueDefinition.getValue();
3738
return enumValueDefinition.getValue();
3839
}

src/main/java/graphql/validation/TraversalContext.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ private void enterImpl(ObjectField objectField) {
127127
GraphQLInputType inputType = null;
128128
if (objectType instanceof GraphQLInputObjectType) {
129129
GraphQLInputObjectField inputField = ((GraphQLInputObjectType) objectType).getField(objectField.getName());
130-
inputType = inputField.getType();
130+
if (inputField != null)
131+
inputType = inputField.getType();
131132
}
132133
addInputType(inputType);
133134
}

src/test/groovy/graphql/validation/ValidationUtilTest.groovy

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,20 @@ class ValidationUtilTest extends Specification {
9898
validationUtil.isValidLiteralValue(new EnumValue("PLUTO"), enumType)
9999
}
100100

101-
def "invalid enum"() {
101+
def "invalid enum value"() {
102102
given:
103103
def enumType = GraphQLEnumType.newEnum().name("enumType").value("PLUTO").build()
104104
expect:
105105
!validationUtil.isValidLiteralValue(new StringValue("MARS"), enumType)
106106
}
107107

108+
def "invalid enum name"() {
109+
given:
110+
def enumType = GraphQLEnumType.newEnum().name("enumType").value("PLUTO").build()
111+
expect:
112+
!validationUtil.isValidLiteralValue(new EnumValue("MARS"), enumType)
113+
}
114+
108115
def "a valid ObjectValue"() {
109116
given:
110117
def inputObjectType = GraphQLInputObjectType.newInputObject()

0 commit comments

Comments
 (0)