GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — All fields removed from object/interface via field visibility transformer which is reachable via additional types by andimarek · Pull Request #4203 · graphql-java/graphql-java

Conversation

@andimarek

@andimarek andimarek commented Jan 7, 2026

Copy link
Copy Markdown
Member

In the case of all fields removed from an object/interface via field visibility transformer, which is still referenced via additional types, the validation would fail with

graphql.schema.validation.InvalidSchemaException: invalid schema:
"ToDelete" must define one or more fields.

	at graphql.schema.GraphQLSchema$Builder.validateSchema(GraphQLSchema.java:886)
	at graphql.schema.GraphQLSchema$Builder.buildImpl(GraphQLSchema.java:874)
	at graphql.schema.GraphQLSchema$Builder.build(GraphQLSchema.java:841)
	at graphql.schema.SchemaTransformer$DummyRoot.rebuildSchema(SchemaTransformer.java:631)
	at graphql.schema.SchemaTransformer.transformImpl(SchemaTransformer.java:161)
	at graphql.schema.SchemaTransformer.transform(SchemaTransformer.java:120)
	at graphql.schema.SchemaTransformer.transformSchema(SchemaTransformer.java:88)
	at graphql.schema.transform.FieldVisibilitySchemaTransformation.apply(FieldVisibilitySchemaTransformation.java:79)

This fix ensures that the whole object is deleted if all fields are deleted, hence preventing this validation error.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@andimarek
handle case where all fields are removed via Field visibility transfo…
8407043
…rmer
@github-actions

github-actions Bot commented Jan 7, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Test Results

  327 files  ±0    327 suites  ±0   5m 6s ⏱️ -2s
5 223 tests +2  5 214 ✅ +1  9 💤 +1  0 ❌ ±0 
5 312 runs  +2  5 303 ✅ +1  9 💤 +1  0 ❌ ±0 

Results for commit de1a152. ± Comparison against base commit 021fe1b.

This pull request removes 213 and adds 191 tests. Note that renamed tests count towards both.
	?

	, expected: combo-\"\\\b\f\n\r\t, #4]
                __schema { types { fields { args { type { name fields { name }}}}}}
                __schema { types { fields { type { name fields { name }}}}}
                __schema { types { inputFields { type { inputFields { name }}}}}
                __schema { types { interfaces { fields { type { interfaces { name } } } } } }
                __schema { types { name} }
                __type(name : "t") { name }
                a1: __schema { types { name} }
                a1: __type(name : "t") { name }
…
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure23@14823f76 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure24@1442f788 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertFalse with different number of error args but false does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_21prov0_closure25@113e13f9 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure20@10643593 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure21@f91da5e delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertFalse with different number of error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_20prov0_closure22@eca6a74 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertNotNull with different number of  error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure3@158f4cfe delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1, #0]
graphql.AssertTest ‑ assertNotNull with different number of  error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure4@3f702946 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2, #1]
graphql.AssertTest ‑ assertNotNull with different number of  error args throws assertions [toRun: <graphql.AssertTest$__spock_feature_0_5prov0_closure5@10823d72 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1 arg2 arg3, #2]
graphql.AssertTest ‑ assertNotNull with different number of error args with non null does not throw assertions [toRun: <graphql.AssertTest$__spock_feature_0_6prov0_closure6@7e744f43 delegate=graphql.AssertTest@6c6333cd owner=graphql.AssertTest@6c6333cd thisObject=graphql.AssertTest@6c6333cd resolveStrategy=0 directive=0 parameterTypes=[class java.lang.Object] maximumNumberOfParameters=1 bcw=null>, expectedMessage: error arg1, #0]
…
This pull request skips 1 test.
graphql.schema.fetching.LambdaFetchingSupportTest ‑ different class loaders induce certain behaviours

♻️ This comment has been updated with latest results.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@andimarek
handle case where all fields are removed via Field visibility transfo…
de1a152
…rmer (for input object types)
@andimarek
andimarek merged commit 21b9743 into master Jan 7, 2026
5 checks passed

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@andimarek
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.