Skip to content

CI Failure DoctorCI Failure - Run #23398087408 - JSpecifyAnnotationsCheck exemption list conflict #4351

@github-actions

Description

@github-actions

Failure Details

Failed Jobs and Errors

Job Conclusion
buildAndTest (testWithJava21 testngWithJava21, java21, ...) ❌ failure
buildAndTest (testWithJava11 ...) ⚫ cancelled
buildAndTest (testWithJava17 ...) ⚫ cancelled
buildAndTest (test testng jacocoTestReport, java25, ...) ⚫ cancelled
javadoc ✅ success
buildAndTest (check) ✅ success

Root Cause

The JSpecifyAnnotationsCheck test has two assertions:

  1. All @PublicApi/@ExperimentalApi classes must have @NullMarked or @NullUnmarked (unless exempted).
  2. Classes in the exemption list must NOT be annotated — if a class is both annotated and exempted, the test fails.

PR #4274 added these 10 classes to its exemption list (indicating they hadn't been annotated yet):

graphql.execution.incremental.DeferredExecution
graphql.execution.instrumentation.ChainedInstrumentation
graphql.execution.instrumentation.DocumentAndVariables
graphql.execution.instrumentation.NoContextChainedInstrumentation
graphql.execution.ResponseMapFactory
graphql.execution.instrumentation.SimpleInstrumentation
graphql.execution.instrumentation.SimpleInstrumentationContext
graphql.execution.instrumentation.SimplePerformantInstrumentation
graphql.execution.instrumentation.fieldvalidation.FieldAndArguments
graphql.execution.instrumentation.fieldvalidation.FieldValidationEnvironment

However, all 10 of these classes were already annotated with @NullMarked in master (likely via PRs #4216/#4257 merged 2026-03-21/22). When PR #4274 merged master, the annotation stubs from master came in, but the exemption list was not reconciled.

This causes the second assertion in JSpecifyAnnotationsCheck.groovy to throw:

The following classes are in the JSpecify exemption list but are annotated with @NullMarked or @NullUnmarked: ...

Recommended Fix

  • In src/test/groovy/graphql/archunit/JSpecifyAnnotationsCheck.groovy on branch claude/agent-team-jspecify-Frd74, remove these 10 entries from JSPECIFY_EXEMPTION_LIST:
"graphql.execution.incremental.DeferredExecution",
"graphql.execution.instrumentation.ChainedInstrumentation",
"graphql.execution.instrumentation.DocumentAndVariables",
"graphql.execution.instrumentation.NoContextChainedInstrumentation",
"graphql.execution.ResponseMapFactory",
"graphql.execution.instrumentation.SimpleInstrumentation",
"graphql.execution.instrumentation.SimpleInstrumentationContext",
"graphql.execution.instrumentation.SimplePerformantInstrumentation",
"graphql.execution.instrumentation.fieldvalidation.FieldAndArguments",
"graphql.execution.instrumentation.fieldvalidation.FieldValidationEnvironment",

These classes are already annotated in master, so they do not belong in the exemption list.

Generated by CI Failure Doctor

To install this workflow, run gh aw add githubnext/agentics/workflows/ci-doctor.md@ee50a3b7d1d3eb4a8c409ac9409fd61c9a66b0f5. View source at https://github.com/githubnext/agentics/tree/ee50a3b7d1d3eb4a8c409ac9409fd61c9a66b0f5/workflows/ci-doctor.md.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions