ppkarwasz opened a new pull request, #48:
URL: https://github.com/apache/commons-xml/pull/48

   Every open PR and `main` itself are currently red. Three jobs fail 
everywhere, all of them JDK 8:
   
   - `build (ubuntu-latest, semeru 8)`
   - `build (ubuntu-latest, zulu 8.0.201)`
   - `build (windows-latest, temurin 8)`
   
   ```
   javadoc: warning - Error fetching URL: 
https://jakarta.ee/specifications/platform/8/apidocs/
   An error has occurred in Javadoc report generation: Project contains Javadoc 
Warnings
   ```
   
   That `<link>` comes from `commons-parent`, which also sets 
`failOnWarnings=true`, so a single warning fails the build. JDK 8's `javadoc` 
can no longer fetch the URL; JDK 9+ can. Nothing in any branch causes it: a 
dependabot version bump fails identically, and `main` was green through 
2026-08-18 then went red on 2026-08-20 with no relevant code change.
   
   ## Run Javadoc once, not eleven times
   
   Every non-GraalVM matrix entry runs bare `mvn`, falling through to 
`<defaultGoal>`, so Javadoc is generated eleven times across seven JDK majors 
and two operating systems. Javadoc's warnings and doclint rules shift between 
releases, so that arrangement lets one JDK's quirk fail ten unrelated builds.
   
   The build job now gets an explicit goal list without `javadoc:javadoc`, and 
a single `javadoc` job runs it on temurin 25. `<defaultGoal>` deliberately 
keeps `javadoc:javadoc`, so a bare local `mvn` still checks it as README.md and 
CONTRIBUTING.md instruct; only CI overrides the list, and the two need to stay 
in sync.
   
   ## SpotBugs was never running
   
   Noticed while reordering the same line. `spotbugs:check` ran second, right 
after `clean`, before anything was compiled. It forks only the `spotbugs` goal 
(`executeGoal`, no `executePhase`), and nothing binds SpotBugs to a lifecycle 
phase, so it analyzed an empty `target/classes` and passed vacuously on every 
build:
   
   ```
   $ mvn clean spotbugs:check
   [INFO] No files found to run spotbugs; check compile phase has been run.
   [INFO] BUILD SUCCESS
   ```
   
   Given compiled classes it analyzes 34. Moving `spotbugs:check` after 
`verify` fixes it. Checkstyle, PMD and Javadoc read sources rather than 
bytecode, so they stay ahead of `verify` and keep failing fast before the 
seven-execution surefire matrix.
   
   It reports no findings once it actually runs, so nothing else needed fixing 
here.
   
   ## Verified
   
   Locally, on the exact commands CI will run:
   
   - `mvn clean javadoc:javadoc` (the new job): green
   - `mvn clean checkstyle:check pmd:check verify spotbugs:check` (the matrix 
list): all seven surefire executions green, SpotBugs analyzing
   - `mvn` (bare, reordered default goal): green
   
   Expected here: the three JDK 8 jobs go green, a new `javadoc 
(windows-latest, temurin 25)` check appears, and the rest stay green.
   
   ## Notes
   
   - The `jakarta.ee` link is untouched, so the new Javadoc job still depends 
on that fetch succeeding, now for one job instead of eleven. This project uses 
only `javax.xml.*` and no Jakarta EE API, so a `<commons.javadoc.javaee.link>` 
override would drop the dependency entirely if the job proves flaky. Left out 
deliberately.
   - Javadoc is no longer checked under JDK 8/11/17/21/26/27-ea. That is the 
point; release artifacts are built on a modern JDK.
   - `src/conf/spotbugs-exclude-filter.xml` still excludes an 
`NP_LOAD_OF_KNOWN_NULL_VALUE` finding that no longer fires. Left alone, but it 
looks stale now that SpotBugs actually runs.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to