Verifying Java changes
Files: .java. Derived from 11 scanned source repositories and 135 review prompts on https://awesomereviewers.com. Page: https://awesomereviewers.com/verify/java/
How to use this: run every check under Run on every change. Then, for each section under Add when the change touches that describes your diff, run its checks too. Checks catch what a tool can find; then apply the listed review prompts for what tools miss (fetch each prompt’s raw URL).
Usage is the share of scanned repositories in this language that run the tool. A missing tool means no scanned repository runs one the scanner recognises: fall back to the prompts.
Run on every change
- Formatting — no tool detected in the sample. Catches: Layout drift that buries the real change in the diff.
- Linting — no tool detected in the sample. Catches: Bug-prone patterns, unused code and conventions the formatter does not cover.
- Type checking — The compiler type-checks on every build and test run; a failing build is this check failing.
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
Review prompts (23 in total, most discussed first):
- Extract for clarity — elastic/elasticsearch, Code Style
- Use descriptive, unambiguous names — bazelbuild/bazel, Naming Conventions
- Simplify complex code — bazelbuild/bazel, Code Style
- Spring code style — spring-projects/spring-framework, Code Style
- Clean up your code — deeplearning4j/deeplearning4j, Code Style
- Use semantically accurate names — apache/kafka, Naming Conventions
- Name reflects meaning — elastic/elasticsearch, Naming Conventions
- Semantic over generic names — netty/netty, Naming Conventions
- prefer modern collection APIs — apache/kafka, Code Style
- Follow consistent style conventions — spring-projects/spring-boot, Code Style
- Descriptive specific names — spring-projects/spring-framework, Naming Conventions
- Simplify control flow — netty/netty, Code Style
Add when the change touches
- Security scanning:
codeql (9% of repos). Runs via GitHub Action github/codeql-action/analyze. Docs: https://github.com/github/codeql
- Secret scanning — no tool detected in the sample. Catches: Credentials and tokens committed to the repository.
- Dependency audit — no tool detected in the sample. Catches: Known-vulnerable or disallowed dependencies and licenses.
Review prompts (7 in total, most discussed first):
Public APIs, signatures, error paths, nullability
- Type checking — The compiler type-checks on every build and test run; a failing build is this check failing.
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
Review prompts (30 in total, most discussed first):
- Preserve API compatibility — spring-projects/spring-boot, API
- Meaningful error communication — quarkusio/quarkus, Error Handling
- API evolution strategy — quarkusio/quarkus, API
- prefer simple API designs — bazelbuild/bazel, API
- Explicit null handling — bazelbuild/bazel, Null Handling
- Meaningful exception design — spring-projects/spring-boot, Error Handling
- Use null validation utilities — netty/netty, Null Handling
- Validate and document nulls — deeplearning4j/deeplearning4j, Null Handling
- API completeness validation — apache/kafka, API
- Defensive null validation — apache/kafka, Null Handling
- Cleanup error handling — spring-projects/spring-framework, Error Handling
- Prefer Optional over nulls — quarkusio/quarkus, Null Handling
Service and framework code
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Version and platform matrix:
ci-matrix (9% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (3 in total, most discussed first):
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
- Fuzzing — no tool detected in the sample. Catches: Crashes, panics and hangs on malformed input, especially in parsers and decoders.
- Mutation testing — no tool detected in the sample. Catches: Tests that keep passing whatever the code does.
- Proofs and specifications — no tool detected in the sample. Catches: Design-level bugs in protocols and algorithms, checked against a specification.
Review prompts (9 in total, most discussed first):
Threads, async code, locks, shared state
- Concurrency model checking — no tool detected in the sample. Catches: Races and orderings that fail only under specific interleavings.
- Undefined-behaviour detection — no tool detected in the sample. Catches: Memory-safety and aliasing violations in unsafe code.
- Property-based tests — no tool detected in the sample. Catches: Edge-case inputs nobody wrote a test for; invariants over generated data.
Review prompts (10 in total, most discussed first):
- Thread-safe shared state — facebook/react-native, Concurrency
- Executor service lifecycle — bazelbuild/bazel, Concurrency
- Synchronization safety patterns — apache/kafka, Concurrency
- Thread-safe state management — quarkusio/quarkus, Concurrency
- Prefer callbacks over blocking — elastic/elasticsearch, Concurrency
- Memory ordering needs barriers — netty/netty, Concurrency
- Minimize lock contention — spring-projects/spring-framework, Concurrency
- Always secure your locks — deeplearning4j/deeplearning4j, Concurrency
- Thread-safe resource cleanup — opencv/opencv, Concurrency
- Lock responsibly, always — maplibre/maplibre-native, Concurrency
Network calls, retries, timeouts, protocols
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Fuzzing — no tool detected in the sample. Catches: Crashes, panics and hangs on malformed input, especially in parsers and decoders.
Review prompts (5 in total, most discussed first):
UI components and pages
- End-to-end browser tests — no tool detected in the sample. Catches: User flows broken across components, routing and the network.
- Linting — no tool detected in the sample. Catches: Bug-prone patterns, unused code and conventions the formatter does not cover.
Review prompts (1 in total, most discussed first):
Databases, migrations, caching
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
- Version and platform matrix:
ci-matrix (9% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (6 in total, most discussed first):
- No tool-based check applies; rely on the prompts.
Review prompts (8 in total, most discussed first):
Model, prompt and LLM code
- Unit and integration tests — no tool detected in the sample. Catches: Behaviour regressions on the paths the tests exercise.
Review prompts (1 in total, most discussed first):
Logging, metrics, tracing
- No tool-based check applies; rely on the prompts.
Review prompts (5 in total, most discussed first):
CI workflows and configuration files
- CI workflow linting — no tool detected in the sample. Catches: Broken GitHub Actions syntax, script injection, over-broad token permissions.
- File hygiene — no tool detected in the sample. Catches: Invalid JSON, YAML or TOML, merge markers, trailing whitespace, oversized files.
Review prompts (11 in total, most discussed first):
- Document configuration comprehensively — quarkusio/quarkus, Configurations
- Configuration clarity standards — bazelbuild/bazel, Configurations
- Use configuration access methods — elastic/elasticsearch, Configurations
- Document configuration properties completely — spring-projects/spring-boot, Configurations
- validate configuration dependencies — apache/kafka, Configurations
- build action separation — bazelbuild/bazel, CI/CD
- Configurable over hardcoded — netty/netty, Configurations
- Use environment-independent defaults — spring-projects/spring-framework, Configurations
- Configurable resource locations — deeplearning4j/deeplearning4j, Configurations
- prefer system properties directly — apache/spark, Configurations
- configuration consistency management — facebook/react-native, Configurations
Dependencies and lockfiles
- Dependency audit — no tool detected in the sample. Catches: Known-vulnerable or disallowed dependencies and licenses.
- Lockfile consistency — no tool detected in the sample. Catches: A lockfile that no longer matches its manifest.
- Version and platform matrix:
ci-matrix (9% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
The tests themselves
- Mutation testing — no tool detected in the sample. Catches: Tests that keep passing whatever the code does.
- Version and platform matrix:
ci-matrix (9% of repos). Command seen: analyze (language: 2). Docs: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations
Review prompts (8 in total, most discussed first):
- Docs build — no tool detected in the sample. Catches: Broken cross-references, links and markup in documentation.
- Spelling — no tool detected in the sample. Catches: Typos in identifiers, comments and docs.
Review prompts (8 in total, most discussed first):
Source repositories
flutter/flutter, facebook/react-native, spring-projects/spring-boot, elastic/elasticsearch, spring-projects/spring-framework, apache/spark, netty/netty, apache/kafka, bazelbuild/bazel, quarkusio/quarkus, deeplearning4j/deeplearning4j