Skip to content

SchemaUtil#replaceTypeReferences Issue When trying to re-built a GraphqlSchema #3384

@night-crawlr

Description

@night-crawlr

Describe the bug

graphql.schema.impl.SchemaUtil#replaceTypeReferences is breaking , when we are trying to re build the schema.

Issue occurring case :

When we traverse through a GraphqlObject node which has its interfaces resolved (replacedInterfaces!=null), those interfaces wont get registered into typeMap , as we are using

SchemaTraverser schemaTraverser = new SchemaTraverser(schemaElement -> schemaElement.getChildrenWithTypeReferences().getChildrenAsList());

at later step when replaceTypeReferences tries to resolve graphqlobejcts interface types at method graphql.schema.GraphQLTypeResolvingVisitor#visitGraphQLObjectType of a resolved GraphqlObject node ( which have its resolved interfaces ) . it fails to resolve as there is not such interface registered in typeMap.

To Reproduce
one case where its necessary to rebuild an already built schema is while trying to create a readOnly Schema
GraphQLSchema.newSchema(schema).mutation((GraphQLObjectType) null).build()

Metadata

Metadata

Assignees

No one assigned

    Labels

    keep-openTells Stale Bot to keep PRs and issues open

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions