Error Prone is never detected in Maven builds: the regex in jvm/analysis.py contains literal backspace bytes where \b was meant
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- Under an hour
- Newbie friendliness
- 84/100
Research direction
The bad pattern is on line 183 of project_validator/ecosystems/jvm/analysis.py, in the _ERROR_PRONE regex, where literal 0x08 bytes stand in for \b. Run grep -P '\x08' -r project_validator to confirm that this file is the only one affected, then check the regex against the pom.xml snippets quoted in the issue. Done means error_prone_core and -Xplugin:ErrorProne match, and the guava static-analysis check reports Error Prone as detected.
Written by the indexing model from the issue text.
Description
project_validator/ecosystems/jvm/analysis.py:183 holds \x08 characters (a Python string "\b…" written without the raw prefix) where word boundaries were intended, so error_prone_core and -Xplugin:ErrorProne can never match: guava's static-analysis FAILs "no static analyzer runs" despite pom.xml:220 (and --answers shows Error Prone "defined": {}).
Evidence from the corpus audit
google/guava / static-analysis (Error Prone never detected in Maven builds)
- kind: FALSE_NEGATIVE
- actual:
FAIL: JVM: no static analyzer runs(--answers: Error Prone"defined": {}) - expected: PASS/WARN naming Error Prone: it is on the compiler's processor path and
-Xplugin:ErrorProneis passed on every compile thatmvn verifyruns (guava only enables one check,Java8ApiChecker, which deserves a mention, not a miss) - evidence:
- guava
pom.xml:220:<arg>-Xplugin:ErrorProne -Xep:Java8ApiChecker:ERROR -XepDisableAllWarnings</arg>;pom.xml:238-240:<groupId>com.google.errorprone</groupId>/<artifactId>error_prone_core</artifactId> - validator
project_validator/ecosystems/jvm/analysis.py:183contains literal 0x08 bytes:sed -n 183p ... | cat -A→
_ERROR_PRONE = re.compile(rf"^Herror_prone_core^H|-Xplugin:ErrorProne^H|{_ERROR_PRONE_GRADLE}");
_ERROR_PRONE.pattern='\x08error_prone_core\x08|-Xplugin:ErrorProne\x08|...';
_ERROR_PRONE.search("<artifactId>error_prone_core</artifactId>")→ False,_ERROR_PRONE.search("<arg>-Xplugin:ErrorProne -Xep</arg>")→ False.
Only the third alternative (Gradleid("net.ltgt.errorprone")) can match, which is why mockito and junit5 pass.
grep -rlP '\x08' --include=*.py project_validatorfinds only this file.
- guava
- repro:
pom.xmlwhose maven-compiler-plugin has<annotationProcessorPaths><path><artifactId>error_prone_core</artifactId>...and<arg>-Xplugin:ErrorProne</arg>, workflowrun: mvn verify - confidence: high
Found by the regression-corpus audit (235 real repositories, one or more per ecosystem profile; corpus and expected results in corpus/). Evidence is quoted from the audited checkouts at the commits pinned in corpus/projects.toml; <checkouts>/<owner>__<repo> is such a checkout.
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 4
- Forks
- 1
- Avg merge
- 10h 41m
- Merged PRs (30d)
- 79
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cpp-best-practices/project_validator
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
cpp-best-practices/project_validator#267 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
cpp-best-practices/project_validator#263 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
cpp-best-practices/project_validator#260 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
cpp-best-practices/project_validator#259 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
cpp-best-practices/project_validator#255 ·
Maintainers usually reply within 1 day
All issues in cpp-best-practices/project_validator
Similar issues
-
plot_graph crashes when a mesh node has no m2m edgePossibly taken @tygvi claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
mllam/neural-lam#883 · 1 comment ·
Maintainers usually reply within 2 days
-
enhancement possible-duplicate
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
AOSSIE-Org/PictoPy#1715 · 2 comments ·
Maintainers usually reply within 6 days
-
SQLite connector omits generated columns from the catalog, and drops relationships sourced on themOpen
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
NVIDIA/auto-ontology#511 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ethereum/execution-specs#3996 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Project-N-E-K-O/N.E.K.O#3725 ·
Maintainers usually reply within 1 day