Repository navigation
Complete Javadoc on the library API, enforced by doclint - #14
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
default-compile now runs with -Xdoclint:all/protected -Werror, so any public or protected library member without complete Javadoc fails the build. Test and problem sources are not affected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #14 +/- ##
=========================================
Coverage 99.65% 99.65%
Complexity 279 279
=========================================
Files 24 24
Lines 576 576
Branches 94 94
=========================================
Hits 574 574
Partials 2 2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull Request Overview
The current build configuration does not enforce the intended documentation checks: -Xdoclint is configured as a compiler argument even though it belongs to the Javadoc tool, so the verification build may fail on an unsupported option or fail to validate the API documentation. This acceptance criterion remains unaddressed and should be corrected before merging.
No automated verification scenarios are included, and there is no independent evidence in the diff that all public/protected members are documented or that runtime behavior remains unchanged.
Test suggestions
- Run a clean Maven verification build and confirm doclint rejects missing or malformed public/protected documentation.
- Verify the eight explicitly added no-argument constructors are available and preserve the previous default construction behavior.
- Exercise documented edge-case behavior for collections, numeric utilities, geometry, I/O, and sorting APIs.
- Confirm the documentation-only changes do not alter existing library behavior.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Run a clean Maven verification build and confirm doclint rejects missing or malformed public/protected documentation.
2. Verify the eight explicitly added no-argument constructors are available and preserve the previous default construction behavior.
3. Exercise documented edge-case behavior for collections, numeric utilities, geometry, I/O, and sorting APIs.
4. Confirm the documentation-only changes do not alter existing library behavior.
Low confidence findings
- Add automated verification for the documented API behavior and constructor changes, and include a build or generated-Javadoc check that independently demonstrates complete public/protected API documentation.
Make this review better
TIP Add a ticket key to the branch or title so the reviewer can check the PR against it. Or tell us which ticket tracker you use here.
TIP Add Codacy review.md instructions or an AGENTS.md so the reviewer knows your conventions.
TIP How was this review? Give us feedback
| <arg>-Xdoclint:all/protected</arg> | ||
| <arg>-Werror</arg> |
There was a problem hiding this comment.
🔴 HIGH RISK
-Xdoclint is a Javadoc-tool option, not a javac option, so configuring it under the compiler plugin cannot reliably enforce API documentation and may make compilation fail with an unsupported flag. Move doclint and warning-as-error enforcement to the Maven Javadoc plugin, configured for the protected API, and keep only compiler-supported arguments under the compiler plugin.
TIP React 👍 if this review is right, or reply with what's wrong and how it could be better to help improve the reviewer.
Clean-code PR C of 4 (formatting ✅ →
final✅ → Javadoc → approved findings).What changed
@param/@returndescriptions, and malformed HTML.Statistics.mediansorts the caller's array in place;fibonaccionly works for n ≤ 46;LinkedList.getthrowsIllegalArgumentExceptionfor a missing position;LinkedList,Queue,Stack,Vector,InsertionSort,MergeSort,QuickSortandSelectionSort.default-compile) with-Xdoclint:all/protected -Werror, so a public or protected member without complete Javadoc fails./mvnw verify. Test and problem sources aren't affected. Before the docs landed, a clean build failed on the 101 findings.Possible bugs noticed while documenting (not changed here)
These were documented as the code behaves today; whether to fix them is a separate decision. Examples:
LinkedList.add(0, e)on a non-empty list throws;Vector.removehas no bounds check;Elementhas nohashCode;Numbers.toArraycasts before% 10;Geometryuses π = 3.14.Test plan
./mvnw clean verify: doclint, 591 tests, Spotless, PMD and coverage floors pass🤖 Generated with Claude Code