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 — Add JSpecify annotations to normalized, schema, and util classes (Wave 5) by dondonz · Pull Request #4303 · graphql-java/graphql-java

Conversation

@dondonz

@dondonz dondonz commented Mar 7, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

This is the final wave of JSpecify annotations

Summary

  • Adds @NullMarked annotations to 12 remaining classes not covered by other open PRs
  • Fixes all NullAway compilation errors from the new annotations
  • Removes 13 entries from the JSpecify exemption list

Classes annotated

graphql.normalized

  • NormalizedDeferredExecution, NormalizedDocument, NormalizedDocumentFactory
  • NormalizedField, NormalizedOperation, NormalizedOperationToAstCompiler

graphql.schema

  • SchemaGraph, OneOfInputObjectRules

graphql.util

  • CyclicSchemaAnalyzer, QueryGenerator, QueryGeneratorOptions, QueryGeneratorResult

Test plan

  • ./gradlew compileJava passes (NullAway clean)
  • Full CI passes

🤖 Generated with Claude Code

Sorry, something went wrong.

Uh oh!

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

All reactions
claude and others added 30 commits February 28, 2026 23:21
@claude
Add JSpecify agent team orchestrator prompt
7a3d03f
https://claude.ai/code/session_01FG3V2VvjSSbUVcjn9FX4yx
@dondonz
Move to .claude folder
b30585a
@dondonz
Add JSpecify annotations to QueryComplexityCalculator
18cd241
@dondonz
Add JSpecify annotations to AbortExecutionException
fc88122
@dondonz
Add JSpecify annotations to ConditionalNodeDecision
d71b245
@dondonz
Add JSpecify annotations to AsyncExecutionStrategy
f79e9ea
@dondonz
Add JSpecify annotations to QueryComplexityInfo
3194a43
@dondonz
Add JSpecify annotations to AsyncSerialExecutionStrategy
119d6dd
@dondonz
Add JSpecify annotations to QueryDepthInfo
ce144ba
@dondonz
Add JSpecify annotations to CoercedVariables
7765059
@dondonz
Add JSpecify annotations to QueryReducer
7c8569a
@dondonz
Add JSpecify annotations to QueryAppliedDirective
6801331
@dondonz
Add JSpecify annotations to DataFetcherExceptionHandlerParameters
6035167
@dondonz
Add JSpecify annotations to DataFetcherExceptionHandlerResult
dfae148
@dondonz
Add JSpecify annotations to QueryTransformer
460ee6b
@dondonz
Add JSpecify annotations to DefaultValueUnboxer
4427846
@dondonz
Add JSpecify annotations to QueryAppliedDirectiveArgument
32ecef7
@dondonz
Add JSpecify annotations to QueryTraversalOptions
f223706
@dondonz
Add JSpecify annotations to QueryVisitor
bfe03d0
@dondonz
Add JSpecify annotations to ExecutionContext
8b7d7a2
@dondonz
Add JSpecify annotations to ExecutionId
1d3a502
@dondonz
Add JSpecify annotations to QueryDirectives
ed60978
@dondonz
Add JSpecify annotations to QueryVisitorFieldArgumentEnvironment
24aa942
@dondonz
Add JSpecify annotations to QueryVisitorFieldArgumentInputValue
d92048b
@dondonz
Add JSpecify annotations to FieldValidationInstrumentation
1ebd551
@dondonz
Add JSpecify annotations to QueryVisitorFieldArgumentValueEnvironment
c3bda94
@dondonz
Add JSpecify annotations to SimpleFieldValidation
560b28d
@dondonz
Add JSpecify annotations to InstrumentationCreateStateParameters
b540dbb
@dondonz
Add JSpecify annotations to ExecutionStepInfo
e54951c
@dondonz
Add JSpecify annotations to QueryVisitorFieldEnvironment
f9c46df
dondonz and others added 9 commits March 8, 2026 07:27
@dondonz @claude
Add JSpecify annotations to SchemaGraph
cdef4e4
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz @claude
Add JSpecify annotations to NormalizedOperationToAstCompiler
d37b8fa
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz @claude
Add JSpecify annotations to NormalizedField
212836c
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz @claude
Add JSpecify annotations to NormalizedOperation
52b3473
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz
Merge branch 'master' into claude/jspecify-wave4
08f6c66
@dondonz
Merge branch 'worktree-agent-ac94456e' into claude/jspecify-wave5
7f17571
@dondonz
Merge branch 'worktree-agent-aa0c5bf9' into claude/jspecify-wave5
2ef1bf8
@dondonz @claude
Fix NullAway errors from JSpecify Wave 5 annotations
645f3ab
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz @claude
Remove annotated Wave 5 classes from JSpecify exemption list
dbb0f99
Co-Authored-By: Claude Opus 4.6 <[email protected]>
@github-actions

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

Uh oh!

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

Copy link
Copy Markdown
Contributor

Test Report

Test Results

Java Version Total Passed Failed Errors Skipped
Java 11 5865 (±0) 5809 (±0) 0 (±0) 0 (±0) 56 (±0)
Java 17 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
Java 21 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
Java 25 5865 (±0) 5808 (±0) 0 (±0) 0 (±0) 57 (±0)
jcstress 32 (±0) 32 (±0) 0 (±0) 0 (±0) 0 (±0)
Total 23492 (±0) 23265 (±0) 0 (±0) 0 (±0) 227 (±0)

Code Coverage (Java 25)

Metric Covered Missed Coverage vs Master
Lines 29642 3131 90.4% ±0.0%
Branches 8721 1537 85.0% ±0.0%
Methods 7913 1211 86.7% ±0.0%

Changed Class Coverage (9 classes)

Class Line Branch Method
g.i.Introspection ±0.0% +0.8% 🟢 ±0.0%
g.l.AstTransformer -5.0% 🔴 +50.0% 🟢 ±0.0%
g.n.n.NormalizedField ±0.0% -0.1% 🔴 ±0.0%
g.n.n.NormalizedOperationToAstCompiler ±0.0% ±0.0% -5.8% 🔴
g.p.Parser
$1
±0.0% -8.3% 🔴 ±0.0%
g.s.i.SchemaPrinter ±0.0% -0.4% 🔴 ±0.0%
g.s.SchemaTransformer +0.1% 🟢 ±0.0% ±0.0%
g.s.u.SchemaUsageSupport
$1
+0.1% 🟢 -2.4% 🔴 ±0.0%
g.u.q.QueryGenerator ±0.0% ±0.0% -10.7% 🔴
AstTransformer — method details
Method Line Branch
transform 85.7% (-14.3% 🔴) 50.0%
NormalizedField — method details
Method Line Branch
isConditional 79.2% (-2.7% 🔴) 65.4% (-1.3% 🔴)
NormalizedOperationToAstCompiler — method details
Method Line Branch
lambda$compileToDocument$0 new 0.0% —
Parser.1 — method details
Method Line Branch
syntaxError 100.0% 66.7% (-8.3% 🔴)
SchemaPrinter — method details
Method Line Branch
printComments 100.0% 88.9% (-4.0% 🔴)
lambda$updateDeprecatedDirective$0 100.0% 66.7% (-8.3% 🔴)
QueryGenerator — method details
Method Line Branch
lambda$generateQuery$4 new 100.0% —
lambda$generateQuery$3 new 100.0% —
lambda$generateQuery$2 new 100.0% —
lambda$generateQuery$1 new 100.0% —
lambda$generateQuery$0 new 0.0% —
lambda$generateQuery$3 removed removed
lambda$generateQuery$2 removed removed
lambda$generateQuery$1 removed removed
lambda$generateQuery$0 removed removed

Full HTML report: build artifact jacoco-html-report

Updated: 2026-05-24 00:47:46 UTC

All reactions

Sorry, something went wrong.

Uh oh!

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

dondonz and others added 4 commits March 8, 2026 08:38
@dondonz @claude
Fix missing NodeAdapter context var in TreeParallelTransformer
54e6dfd
TreeParallelTransformer only set List.class as a context var but never
NodeAdapter.class. After JSpecify annotations wrapped getVar() calls with
assertNotNull(), this caused test failures in TreeParallelTransformerTest
and AstTransformerTest.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@dondonz
Update orchestration prompt
49aec56
@dondonz
Merge branch 'claude/jspecify-wave4' into claude/jspecify-wave5
0f5ad71
@dondonz
Merge branch 'master' into claude/jspecify-wave5
2d0083d
dondonz
dondonz commented Mar 7, 2026
View reviewed changes
Comment thread src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy Outdated
"graphql.analysis.QueryReducer",
"graphql.analysis.QueryTransformer",
"graphql.analysis.QueryTraversalOptions",
"graphql.analysis.QueryTraverser",

@dondonz dondonz Mar 7, 2026

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are still some classes left in this diff - these are in other currently open PRs

Sorry, something went wrong.

Uh oh!

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

All reactions
@dondonz dondonz added this to the 26.x is a breaking change release (other fixes as well) milestone Mar 21, 2026
dondonz and others added 11 commits April 5, 2026 06:51
@dondonz
Merge branch 'master' into claude/jspecify-wave4
bd93278
# Conflicts:
#	.claude/commands/jspecify-annotate.md
#	src/main/java/graphql/execution/ExecutionContext.java
#	src/main/java/graphql/introspection/GoodFaithIntrospection.java
#	src/main/java/graphql/normalized/ExecutableNormalizedOperation.java
#	src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy
@dondonz
Merge branch 'master' into claude/jspecify-wave4
fb0a249
# Conflicts:
#	src/main/java/graphql/execution/directives/QueryAppliedDirectiveArgument.java
#	src/main/java/graphql/execution/preparsed/PreparsedDocumentEntry.java
#	src/main/java/graphql/util/Anonymizer.java
@dondonz
Small fixes after latest master update
5e1ae1e
@dondonz @claude
Remove annotated classes from JSpecify exemption list
a3e3b07
Removes 31 classes from JSPECIFY_EXEMPTION_LIST in JSpecifyAnnotationsCheck.groovy
that have already been annotated with @NullMarked/@NullUnmarked across the wave 4
work. The "exempted classes should not be annotated" archunit test was failing
because these classes were both exempt and annotated.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@dondonz
Add more small fixes
8399959
@dondonz
Make this one nullable again
a631eba
@dondonz
Merge branch 'master' into claude/jspecify-wave4
dc3c33e
# Conflicts:
#	src/main/java/graphql/language/AstSignature.java
#	src/main/java/graphql/language/VariableDefinition.java
@dondonz
Merge branch 'master' into claude/jspecify-wave5
7b7e39c
# Conflicts:
#	.claude/commands/jspecify-annotate.md
#	src/main/java/graphql/execution/ExecutionContext.java
#	src/main/java/graphql/execution/SubscriptionExecutionStrategy.java
#	src/main/java/graphql/execution/directives/QueryAppliedDirectiveArgument.java
#	src/main/java/graphql/execution/preparsed/PreparsedDocumentEntry.java
#	src/main/java/graphql/introspection/GoodFaithIntrospection.java
#	src/main/java/graphql/language/VariableDefinition.java
#	src/main/java/graphql/normalized/ExecutableNormalizedOperation.java
#	src/main/java/graphql/util/Anonymizer.java
#	src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy
@dondonz
Merge branch 'claude/jspecify-wave4' into claude/jspecify-wave5
33c8f93
# Conflicts:
#	src/main/java/graphql/introspection/GoodFaithIntrospection.java
#	src/main/java/graphql/language/AstTransformer.java
#	src/main/java/graphql/language/NodeTraverser.java
#	src/main/java/graphql/normalized/ExecutableNormalizedOperation.java
#	src/main/java/graphql/schema/idl/SchemaPrinter.java
#	src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy
@dondonz
Remove prompts
44dd809
@dondonz
Fix wave 4 bug and final class - Query Traverser!
e2cc6dd
@dondonz
dondonz marked this pull request as ready for review May 24, 2026 00:33
@dondonz
Merge branch 'master' into claude/jspecify-wave5
1acee8b
@dondonz
dondonz marked this pull request as draft May 24, 2026 06:05

This branch has not been deployed

No deployments
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

26.x is a breaking change release (ot...

Development

Successfully merging this pull request may close these issues.

Uh oh!

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

2 participants

@dondonz @claude
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 01402520 — 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.