Failure Details
Failed Jobs and Errors
| Job |
Conclusion |
buildAndTest (testWithJava21 testngWithJava21, java21, ...) |
❌ failure |
buildAndTest (testWithJava17, ...) |
cancelled |
buildAndTest (testWithJava11, ...) |
cancelled |
buildAndTest (test testng, java25, ...) |
cancelled |
allBuildAndTestSuccessful |
failure (cascade) |
The check job (compile + ErrorProne/NullAway) passed, confirming this is a test failure, not a compilation error.
The failing test is JSpecifyAnnotationsCheck > "exempted classes should not be annotated with @NullMarkedor@NullUnmarked".
Root Cause
The PR annotated 10 graphql.language classes with @NullMarked, but only removed 6 of them from the JSPECIFY_EXEMPTION_LIST in JSpecifyAnnotationsCheck.groovy. Four classes were annotated with @NullMarked but never removed from the exemption list:
| Class |
Annotated with @NullMarked |
Removed from exemption list |
graphql.language.Comment |
✅ |
✅ |
graphql.language.Definition |
✅ |
✅ |
graphql.language.IgnoredChar |
✅ |
✅ |
graphql.language.IgnoredChars |
✅ |
✅ |
graphql.language.Node |
✅ |
✅ |
graphql.language.NodeChildrenContainer |
✅ |
✅ |
graphql.language.NodeVisitor |
✅ |
❌ missing |
graphql.language.NodeVisitorStub |
✅ |
❌ missing |
graphql.language.SourceLocation |
✅ |
❌ missing |
graphql.language.Type |
✅ |
❌ missing |
The second invariant in JSpecifyAnnotationsCheck.groovy requires that any class annotated with @NullMarked or @NullUnmarked must not appear in the exemption list — and vice versa.
Recommended Fix
In src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy, remove the following 4 entries from JSPECIFY_EXEMPTION_LIST:
- "graphql.language.NodeVisitor",
- "graphql.language.NodeVisitorStub",
- "graphql.language.SourceLocation",
- "graphql.language.Type",
These are around lines 126–136 of the file (in the merge commit). After the fix, both invariants should be satisfied:
- All 10 classes will be annotated with
@NullMarked ✅
- None of the 10 will appear in the exemption list ✅
Generated by CI Failure Doctor · ◷
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/ci-doctor.md@ee50a3b7d1d3eb4a8c409ac9409fd61c9a66b0f5
Failure Details
0c7b9c3b665d28c4b5850a84e08f03e9dd9fa412(merge ofcopilot/add-jspecify-annotations-to-classesinto master)Failed Jobs and Errors
buildAndTest (testWithJava21 testngWithJava21, java21, ...)buildAndTest (testWithJava17, ...)buildAndTest (testWithJava11, ...)buildAndTest (test testng, java25, ...)allBuildAndTestSuccessfulThe
checkjob (compile + ErrorProne/NullAway) passed, confirming this is a test failure, not a compilation error.The failing test is
JSpecifyAnnotationsCheck > "exempted classes should not be annotated with@NullMarkedor@NullUnmarked".Root Cause
The PR annotated 10
graphql.languageclasses with@NullMarked, but only removed 6 of them from theJSPECIFY_EXEMPTION_LISTinJSpecifyAnnotationsCheck.groovy. Four classes were annotated with@NullMarkedbut never removed from the exemption list:@NullMarkedgraphql.language.Commentgraphql.language.Definitiongraphql.language.IgnoredChargraphql.language.IgnoredCharsgraphql.language.Nodegraphql.language.NodeChildrenContainergraphql.language.NodeVisitorgraphql.language.NodeVisitorStubgraphql.language.SourceLocationgraphql.language.TypeThe second invariant in
JSpecifyAnnotationsCheck.groovyrequires that any class annotated with@NullMarkedor@NullUnmarkedmust not appear in the exemption list — and vice versa.Recommended Fix
In
src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy, remove the following 4 entries fromJSPECIFY_EXEMPTION_LIST:These are around lines 126–136 of the file (in the merge commit). After the fix, both invariants should be satisfied:
@NullMarked✅