X Tutup
Skip to content

CI Failure DoctorCI Failure - Run #22833938163 - Per-Class Coverage Gate regression in PropertyFetchingImpl #4310

@github-actions

Description

@github-actions

Failure Details

Failed Jobs and Errors

Job Status
Per-Class Coverage Gate ❌ FAILED — Step: Enforce Per-Class Coverage Gate
allBuildAndTestSuccessful ❌ FAILED — because Per-Class Coverage Gate failed
All buildAndTest jobs ✅ passed

The coverage gate script (.github/workflows/pull_request.yml) compares per-class JaCoCo coverage from the CI run against test-baseline.json. It fails if any class drops more than 0.05% on line, branch, or method coverage.

Root Cause

test-baseline.json was not updated to reflect the new code added by this PR.

PR #4287 adds 39 new lines to graphql.schema.PropertyFetchingImpl via the new private method findMethodOnPublicInterfaces(...). The baseline still contains the pre-PR values:

"graphql.schema.PropertyFetchingImpl": {
  "line":   { "covered": 144, "missed": 20 },
  "branch": { "covered": 55,  "missed": 13 },
  "method": { "covered": 31,  "missed": 0  }
}

The new findMethodOnPublicInterfaces method introduces additional branches (the dfeInUse conditional, two catch (NoSuchMethodException) blocks, the Modifier.isPublic check, and the recursive iface.getInterfaces() call). Even with the new tests added, some of these branches may not be exercised, causing the actual CI branch/line coverage percentage to fall below the baseline value of:

  • Line: 144 / 164 = 87.8%
  • Branch: 55 / 68 = 80.9%

This has been failing across all three runs of this PR branch:

  • Run 22787152157
  • Run 22818128030
  • Run 22833938163

Recommended Fix

  • Run ./gradlew test jacocoTestReport locally on the PR branch
  • After a successful test run, update test-baseline.json by running the baseline script (or manually copy the new JaCoCo coverage numbers for graphql.schema.PropertyFetchingImpl and any other changed classes)
  • Specifically ensure coverage for the new findMethodOnPublicInterfaces method's branches are tested, particularly:
    • The dfeInUse = true code path through a public interface
    • The catch (NoSuchMethodException) fallthrough paths
    • The recursive search through iface.getInterfaces() when iface is not public
  • Commit the updated test-baseline.json to the PR branch

Relevant file: test-baseline.json — the graphql.schema.PropertyFetchingImpl entry needs to be updated with post-PR coverage numbers.

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

      X Tutup