Js-graphql-intellij-plugin: Invalid Schema for optional field arguments on interface implementations

Created on 28 May 2020  路  5Comments  路  Source: jimkyndemeyer/js-graphql-intellij-plugin

Version and Environment Details

__Operation system__: OSX

__IDE name and version__: WebStorm 2020.1 EAP

__Plugin version__: 2.4.0

Expected Behaviour

interface Vehicle {
  name: String!
}

type Car implements Vehicle {
  name(charLimit: Int = 10): String!
}

This was, at one point, an invalid schema, but it was made valid 5 years ago.
https://github.com/graphql/graphql-spec/pull/110
https://github.com/graphql/graphql-spec/issues/401

Actual Behaviour

graphql.schema.validation.InvalidSchemaException: invalid schema:
object type 'Car' does not implement interface 'Vehicle' because field 'name' has a different number of arguments
    at graphql.schema.GraphQLSchema$Builder.buildImpl(GraphQLSchema.java:536)
    at graphql.schema.GraphQLSchema$Builder.build(GraphQLSchema.java:515)
    at graphql.schema.idl.SchemaGenerator.makeExecutableSchemaImpl(SchemaGenerator.java:294)
    at graphql.schema.idl.SchemaGenerator.makeExecutableSchema(SchemaGenerator.java:271)
    at graphql.schema.idl.SchemaGenerator.makeExecutableSchema(SchemaGenerator.java:243)
    at graphql.schema.idl.UnExecutableSchemaGenerator.makeUnExecutableSchema(UnExecutableSchemaGenerator.java:28)
    at com.intellij.lang.jsgraphql.schema.GraphQLTypeDefinitionRegistryServiceImpl.lambda$getSchemaWithErrors$1(GraphQLTypeDefinitionRegistryServiceImpl.java:72)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
    at com.intellij.lang.jsgraphql.schema.GraphQLTypeDefinitionRegistryServiceImpl.getSchemaWithErrors(GraphQLTypeDefinitionRegistryServiceImpl.java:69)
    at com.intellij.lang.jsgraphql.ide.project.schemastatus.GraphQLConfigSchemaNode.<init>(GraphQLConfigSchemaNode.java:82)
    at com.intellij.lang.jsgraphql.ide.project.schemastatus.GraphQLSchemasRootNode.getChildren(GraphQLSchemasRootNode.java:48)
    at com.intellij.lang.jsgraphql.ide.project.schemastatus.GraphQLSchemasPanel.lambda$null$0(GraphQLSchemasPanel.java:128)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:869)
    at com.intellij.lang.jsgraphql.ide.project.schemastatus.GraphQLSchemasPanel.lambda$null$1(GraphQLSchemasPanel.java:125)
    at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
    at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:255)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

It does look like it's straight from the library so I'll create an issue there as well.
https://github.com/graphql-java/graphql-java/issues/1932

All 5 comments

Hi Carson,

Thanks for using the plugin, and for catching this.

Yes, this will require a fix in graphql-java, and a subsequent version upgrade here, which I'll track using this issue.

Best regards,
Jim.

Looks like fix was already merged a couple days ago https://github.com/graphql-java/graphql-java/pull/1920
Just waiting on release then 馃槃

Please update soon! 馃槩

Fixed in 2.5.0, pending JetBrains approval.

Working great! Thanks for the quick release 馃挴

Was this page helpful?
0 / 5 - 0 ratings

Related issues

victororlyk picture victororlyk  路  3Comments

rlancer picture rlancer  路  3Comments

vjpr picture vjpr  路  4Comments

jamiter picture jamiter  路  3Comments

smmoosavi picture smmoosavi  路  3Comments