From 594809f43d574d0698a94635ba44c597cfdcb860 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 17:51:40 +0000 Subject: [PATCH 1/2] fix(deps): update dependency com.graphql-java:graphql-java to v25 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 98835eab..1f044e52 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 2.3.10 1.10.2 2.21.0 - 23.1 + 25.0 1.0.4 ${java.version} From fa998b6db62039c58416a0b4a03931f03ed70cbc Mon Sep 17 00:00:00 2001 From: Oryan Date: Wed, 18 Feb 2026 13:27:26 -0500 Subject: [PATCH 2/2] Fix nulls --- .../tools/relay/RelayConnectionFactory.kt | 12 ++++++++--- .../tools/resolver/FieldResolverScanner.kt | 5 +++-- .../kickstart/tools/EndToEndSpecHelper.kt | 8 ++++--- .../MethodFieldResolverDataFetcherTest.kt | 21 +++++++++++-------- .../tools/MethodFieldResolverTest.kt | 2 +- .../tools/SchemaClassScannerDirectiveTest.kt | 2 +- .../kickstart/tools/SchemaParserTest.kt | 12 +++++------ 7 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/main/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactory.kt b/src/main/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactory.kt index 8ebabb7c..b3e05db6 100644 --- a/src/main/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactory.kt +++ b/src/main/kotlin/graphql/kickstart/tools/relay/RelayConnectionFactory.kt @@ -54,7 +54,7 @@ class RelayConnectionFactory : TypeDefinitionFactory { .fieldDefinition(FieldDefinition("pageInfo", TypeName("PageInfo"))) .build() - private fun createEdgeDefinition(connectionType: String, nodeType: String): ObjectTypeDefinition = + private fun createEdgeDefinition(connectionType: String, nodeType: String?): ObjectTypeDefinition = ObjectTypeDefinition.newObjectTypeDefinition() .name(connectionType + "Edge") .fieldDefinition(FieldDefinition("cursor", TypeName("String"))) @@ -70,7 +70,7 @@ class RelayConnectionFactory : TypeDefinitionFactory { .fieldDefinition(FieldDefinition("endCursor", TypeName("String"))) .build() - private fun Directive.forTypeName(): String { + private fun Directive.forTypeName(): String? { return (this.getArgument("for").value as StringValue).value } @@ -82,7 +82,13 @@ class RelayConnectionFactory : TypeDefinitionFactory { return this.directives.map { it.withField(this) } } - class DirectiveWithField(val field: FieldDefinition, name: String, arguments: List, sourceLocation: SourceLocation, comments: List) : Directive(name, arguments, sourceLocation, comments, IgnoredChars.EMPTY, emptyMap()) { + class DirectiveWithField( + val field: FieldDefinition, + name: String, + arguments: List, + sourceLocation: SourceLocation?, + comments: List + ) : Directive(name, arguments, sourceLocation, comments, IgnoredChars.EMPTY, emptyMap()) { fun getTypeName(): String { val type = field.type if (type is NonNullType) { diff --git a/src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolverScanner.kt b/src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolverScanner.kt index 08ce1605..6adaf414 100644 --- a/src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolverScanner.kt +++ b/src/main/kotlin/graphql/kickstart/tools/resolver/FieldResolverScanner.kt @@ -202,8 +202,9 @@ internal class FieldResolverScanner(val options: SchemaParserOptions) { isSubscription = isSubscription || search.source is GraphQLSubscriptionResolver } - val sourceName = if (field.sourceLocation != null && field.sourceLocation.sourceName != null) field.sourceLocation.sourceName else "" - val sourceLocation = if (field.sourceLocation != null) "$sourceName:${field.sourceLocation.line}" else "" + val sourceName = field.sourceLocation?.sourceName ?: "" + val sourceLocation = field.sourceLocation?.let { "$sourceName:${it.line}" } ?: "" + return "No method${if (scannedProperties) " or field" else ""} found as defined in schema $sourceLocation with any of the following signatures " + "(with or without one of $allowedLastArgumentTypes as the last argument), in priority order:\n${signatures.joinToString("\n ")}" + if (isSubscription) "\n\nNote that a Subscription data fetcher must return a Publisher of events" else "" diff --git a/src/test/kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt b/src/test/kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt index 4b9317d5..2bb44147 100644 --- a/src/test/kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt +++ b/src/test/kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt @@ -501,7 +501,7 @@ val customScalarUUID = GraphQLScalarType.newScalar() val customScalarMap = GraphQLScalarType.newScalar() .name("customScalarMap") .description("customScalarMap") - .coercing(object : Coercing, Map> { + .coercing(object : Coercing, Map> { @Suppress("UNCHECKED_CAST") override fun parseValue(input: Any, context: GraphQLContext, locale: Locale): Map = input as Map @@ -515,8 +515,10 @@ val customScalarMap = GraphQLScalarType.newScalar() variables: CoercedVariables, context: GraphQLContext, locale: Locale - ): Map = - (input as ObjectValue).objectFields.associateBy { it.name }.mapValues { (it.value.value as StringValue).value } + ): Map = + (input as ObjectValue).objectFields + .associateBy { it.name } + .mapValues { (it.value.value as StringValue).value } }) .build() diff --git a/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverDataFetcherTest.kt b/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverDataFetcherTest.kt index 481d2a4e..91464566 100644 --- a/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverDataFetcherTest.kt +++ b/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverDataFetcherTest.kt @@ -296,15 +296,17 @@ class MethodFieldResolverDataFetcherTest { return FieldResolverScanner(options).findFieldResolver(field, resolverInfo).createDataFetcher() } - private fun createEnvironment(source: Any = Object(), arguments: Map = emptyMap(), context: GraphQLContext? = null): DataFetchingEnvironment { - return DataFetchingEnvironmentImpl.newDataFetchingEnvironment(buildExecutionContext()) - .source(source) - .arguments(arguments) - .graphQLContext(context) - .build() - } - - private fun buildExecutionContext(): ExecutionContext { + private fun createEnvironment( + source: Any = Object(), + arguments: Map = emptyMap(), + context: GraphQLContext = GraphQLContext.newContext().build() + ) = DataFetchingEnvironmentImpl.newDataFetchingEnvironment(buildExecutionContext(context)) + .source(source) + .arguments(arguments) + .graphQLContext(context) + .build() + + private fun buildExecutionContext(context: GraphQLContext): ExecutionContext { val executionStrategy = object : ExecutionStrategy() { override fun execute(executionContext: ExecutionContext, parameters: ExecutionStrategyParameters): CompletableFuture { throw AssertionError("should not be called") @@ -312,6 +314,7 @@ class MethodFieldResolverDataFetcherTest { } val executionId = ExecutionId.from("executionId123") return ExecutionContextBuilder.newExecutionContextBuilder() + .graphQLContext(context) .instrumentation(SimplePerformantInstrumentation.INSTANCE) .executionId(executionId) .queryStrategy(executionStrategy) diff --git a/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverTest.kt b/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverTest.kt index 642fe6c5..b64c5ac2 100644 --- a/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverTest.kt +++ b/src/test/kotlin/graphql/kickstart/tools/MethodFieldResolverTest.kt @@ -246,7 +246,7 @@ class MethodFieldResolverTest { val value get() = internalValue companion object { - fun of(input: Any) = when (input) { + fun of(input: Any?) = when (input) { is String -> CustomScalar(input) else -> throw IllegalArgumentException() } diff --git a/src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerDirectiveTest.kt b/src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerDirectiveTest.kt index 10573c72..d5bf2fbf 100644 --- a/src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerDirectiveTest.kt +++ b/src/test/kotlin/graphql/kickstart/tools/SchemaClassScannerDirectiveTest.kt @@ -37,7 +37,7 @@ class SchemaClassScannerDirectiveTest { assertEquals(value.value, "some thing") } - data class CustomValue(val value: String) + data class CustomValue(val value: String?) private val customValueScalar: GraphQLScalarType = GraphQLScalarType.newScalar() .name("CustomValue") .coercing(object : Coercing { diff --git a/src/test/kotlin/graphql/kickstart/tools/SchemaParserTest.kt b/src/test/kotlin/graphql/kickstart/tools/SchemaParserTest.kt index 474c8bca..7d022bae 100644 --- a/src/test/kotlin/graphql/kickstart/tools/SchemaParserTest.kt +++ b/src/test/kotlin/graphql/kickstart/tools/SchemaParserTest.kt @@ -263,9 +263,9 @@ class SchemaParserTest { .getFieldDefinition("id") .definition!!.sourceLocation assertNotNull(sourceLocation) - assertEquals(sourceLocation.line, 2) - assertEquals(sourceLocation.column, 5) - assertNull(sourceLocation.sourceName) + assertEquals(sourceLocation?.line, 2) + assertEquals(sourceLocation?.column, 5) + assertNull(sourceLocation?.sourceName) } @Test @@ -280,9 +280,9 @@ class SchemaParserTest { .getFieldDefinition("id") .definition!!.sourceLocation assertNotNull(sourceLocation) - assertEquals(sourceLocation.line, 2) - assertEquals(sourceLocation.column, 3) - assertEquals(sourceLocation.sourceName, "Test.graphqls") + assertEquals(sourceLocation?.line, 2) + assertEquals(sourceLocation?.column, 3) + assertEquals(sourceLocation?.sourceName, "Test.graphqls") } @Test