Skip to content

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

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.

Activity

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

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