# 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](https://awesomereviewers.com/raw/elasticsearch-extract-for-clarity.md) — elastic/elasticsearch, Code Style
- [Use descriptive, unambiguous names](https://awesomereviewers.com/raw/bazel-use-descriptive-unambiguous-names.md) — bazelbuild/bazel, Naming Conventions
- [Simplify complex code](https://awesomereviewers.com/raw/bazel-simplify-complex-code.md) — bazelbuild/bazel, Code Style
- [Spring code style](https://awesomereviewers.com/raw/spring-framework-spring-code-style.md) — spring-projects/spring-framework, Code Style
- [Clean up your code](https://awesomereviewers.com/raw/deeplearning4j-clean-up-your-code.md) — deeplearning4j/deeplearning4j, Code Style
- [Use semantically accurate names](https://awesomereviewers.com/raw/kafka-use-semantically-accurate-names.md) — apache/kafka, Naming Conventions
- [Name reflects meaning](https://awesomereviewers.com/raw/elasticsearch-name-reflects-meaning.md) — elastic/elasticsearch, Naming Conventions
- [Semantic over generic names](https://awesomereviewers.com/raw/netty-semantic-over-generic-names.md) — netty/netty, Naming Conventions
- [prefer modern collection APIs](https://awesomereviewers.com/raw/kafka-prefer-modern-collection-apis.md) — apache/kafka, Code Style
- [Follow consistent style conventions](https://awesomereviewers.com/raw/spring-boot-follow-consistent-style-conventions.md) — spring-projects/spring-boot, Code Style
- [Descriptive specific names](https://awesomereviewers.com/raw/spring-framework-descriptive-specific-names.md) — spring-projects/spring-framework, Naming Conventions
- [Simplify control flow](https://awesomereviewers.com/raw/netty-simplify-control-flow.md) — netty/netty, Code Style

## Add when the change touches

### Authentication, input handling, secrets, permissions

- **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):

- [Explicit security configurations](https://awesomereviewers.com/raw/spring-boot-explicit-security-configurations.md) — spring-projects/spring-boot, Security
- [Secure authentication defaults](https://awesomereviewers.com/raw/quarkus-secure-authentication-defaults.md) — quarkusio/quarkus, Security
- [Enable header validation](https://awesomereviewers.com/raw/netty-enable-header-validation.md) — netty/netty, Security
- [Enforce least privilege](https://awesomereviewers.com/raw/elasticsearch-enforce-least-privilege.md) — elastic/elasticsearch, Security
- [temporary security workarounds](https://awesomereviewers.com/raw/bazel-temporary-security-workarounds.md) — bazelbuild/bazel, Security
- [avoid password conversions](https://awesomereviewers.com/raw/kafka-avoid-password-conversions.md) — apache/kafka, Security
- [Validate security-sensitive inputs](https://awesomereviewers.com/raw/spring-framework-validate-security-sensitive-inputs.md) — spring-projects/spring-framework, Security

### 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](https://awesomereviewers.com/raw/spring-boot-preserve-api-compatibility.md) — spring-projects/spring-boot, API
- [Meaningful error communication](https://awesomereviewers.com/raw/quarkus-meaningful-error-communication.md) — quarkusio/quarkus, Error Handling
- [API evolution strategy](https://awesomereviewers.com/raw/quarkus-api-evolution-strategy.md) — quarkusio/quarkus, API
- [prefer simple API designs](https://awesomereviewers.com/raw/bazel-prefer-simple-api-designs.md) — bazelbuild/bazel, API
- [Explicit null handling](https://awesomereviewers.com/raw/bazel-explicit-null-handling.md) — bazelbuild/bazel, Null Handling
- [Meaningful exception design](https://awesomereviewers.com/raw/spring-boot-meaningful-exception-design.md) — spring-projects/spring-boot, Error Handling
- [Use null validation utilities](https://awesomereviewers.com/raw/netty-use-null-validation-utilities.md) — netty/netty, Null Handling
- [Validate and document nulls](https://awesomereviewers.com/raw/deeplearning4j-validate-and-document-nulls.md) — deeplearning4j/deeplearning4j, Null Handling
- [API completeness validation](https://awesomereviewers.com/raw/kafka-api-completeness-validation.md) — apache/kafka, API
- [Defensive null validation](https://awesomereviewers.com/raw/kafka-defensive-null-validation.md) — apache/kafka, Null Handling
- [Cleanup error handling](https://awesomereviewers.com/raw/spring-framework-cleanup-error-handling.md) — spring-projects/spring-framework, Error Handling
- [Prefer Optional over nulls](https://awesomereviewers.com/raw/quarkus-prefer-optional-over-nulls.md) — 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):

- [Concrete bean return types](https://awesomereviewers.com/raw/spring-boot-concrete-bean-return-types.md) — spring-projects/spring-boot, Spring
- [Respect annotation processing order](https://awesomereviewers.com/raw/spring-framework-respect-annotation-processing-order.md) — spring-projects/spring-framework, Spring
- [Spring DI precedence rules](https://awesomereviewers.com/raw/quarkus-spring-di-precedence-rules.md) — quarkusio/quarkus, Spring

### Algorithms, parsers, data transforms

- **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):

- [Optimize before implementing](https://awesomereviewers.com/raw/elasticsearch-optimize-before-implementing.md) — elastic/elasticsearch, Algorithms
- [optimize algorithm choices](https://awesomereviewers.com/raw/bazel-optimize-algorithm-choices.md) — bazelbuild/bazel, Algorithms
- [Use appropriate collections](https://awesomereviewers.com/raw/spring-framework-use-appropriate-collections.md) — spring-projects/spring-framework, Algorithms
- [optimize algorithmic complexity](https://awesomereviewers.com/raw/kafka-optimize-algorithmic-complexity.md) — apache/kafka, Algorithms
- [Optimize algorithmic operations](https://awesomereviewers.com/raw/quarkus-optimize-algorithmic-operations.md) — quarkusio/quarkus, Algorithms
- [Optimize search operations](https://awesomereviewers.com/raw/netty-optimize-search-operations.md) — netty/netty, Algorithms
- [optimize algorithmic efficiency](https://awesomereviewers.com/raw/react-native-optimize-algorithmic-efficiency.md) — facebook/react-native, Algorithms
- [Compare floating-point safely](https://awesomereviewers.com/raw/deeplearning4j-compare-floating-point-safely.md) — deeplearning4j/deeplearning4j, Algorithms
- [Test algorithmic performance scaling](https://awesomereviewers.com/raw/spark-test-algorithmic-performance-scaling.md) — apache/spark, Algorithms

### 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](https://awesomereviewers.com/raw/react-native-thread-safe-shared-state.md) — facebook/react-native, Concurrency
- [Executor service lifecycle](https://awesomereviewers.com/raw/bazel-executor-service-lifecycle.md) — bazelbuild/bazel, Concurrency
- [Synchronization safety patterns](https://awesomereviewers.com/raw/kafka-synchronization-safety-patterns.md) — apache/kafka, Concurrency
- [Thread-safe state management](https://awesomereviewers.com/raw/quarkus-thread-safe-state-management.md) — quarkusio/quarkus, Concurrency
- [Prefer callbacks over blocking](https://awesomereviewers.com/raw/elasticsearch-prefer-callbacks-over-blocking.md) — elastic/elasticsearch, Concurrency
- [Memory ordering needs barriers](https://awesomereviewers.com/raw/netty-memory-ordering-needs-barriers.md) — netty/netty, Concurrency
- [Minimize lock contention](https://awesomereviewers.com/raw/spring-framework-minimize-lock-contention.md) — spring-projects/spring-framework, Concurrency
- [Always secure your locks](https://awesomereviewers.com/raw/deeplearning4j-always-secure-your-locks.md) — deeplearning4j/deeplearning4j, Concurrency
- [Thread-safe resource cleanup](https://awesomereviewers.com/raw/opencv-thread-safe-resource-cleanup.md) — opencv/opencv, Concurrency
- [Lock responsibly, always](https://awesomereviewers.com/raw/maplibre-native-lock-responsibly-always.md) — 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):

- [Protect network buffer lifecycle](https://awesomereviewers.com/raw/netty-protect-network-buffer-lifecycle.md) — netty/netty, Networking
- [validate network state](https://awesomereviewers.com/raw/kafka-validate-network-state.md) — apache/kafka, Networking
- [Clone network headers carefully](https://awesomereviewers.com/raw/spring-framework-clone-network-headers-carefully.md) — spring-projects/spring-framework, Networking
- [platform API consistency](https://awesomereviewers.com/raw/react-native-platform-api-consistency.md) — facebook/react-native, Networking
- [Document network interface purposes](https://awesomereviewers.com/raw/bazel-document-network-interface-purposes.md) — bazelbuild/bazel, Networking

### 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):

- [manage component state dependencies](https://awesomereviewers.com/raw/react-native-manage-component-state-dependencies.md) — facebook/react-native, React

### 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):

- [Prevent redundant operations](https://awesomereviewers.com/raw/elasticsearch-prevent-redundant-operations.md) — elastic/elasticsearch, Database
- [optimize data structures](https://awesomereviewers.com/raw/kafka-optimize-data-structures.md) — apache/kafka, Database
- [Validate database connections explicitly](https://awesomereviewers.com/raw/quarkus-validate-database-connections-explicitly.md) — quarkusio/quarkus, Database
- [Avoid eager cache invalidation](https://awesomereviewers.com/raw/bazel-avoid-eager-cache-invalidation.md) — bazelbuild/bazel, Caching
- [context-independent schema design](https://awesomereviewers.com/raw/spark-context-independent-schema-design.md) — apache/spark, Database
- [Database-agnostic SQL syntax](https://awesomereviewers.com/raw/spring-framework-database-agnostic-sql-syntax.md) — spring-projects/spring-framework, Database

### Hot paths and performance

- No tool-based check applies; rely on the prompts.

Review prompts (8 in total, most discussed first):

- [Optimize allocation hotspots](https://awesomereviewers.com/raw/netty-optimize-allocation-hotspots.md) — netty/netty, Performance Optimization
- [Minimize allocation hotspots](https://awesomereviewers.com/raw/spring-framework-minimize-allocation-hotspots.md) — spring-projects/spring-framework, Performance Optimization
- [avoid unnecessary object creation](https://awesomereviewers.com/raw/kafka-avoid-unnecessary-object-creation.md) — apache/kafka, Performance Optimization
- [Avoid unnecessary computations](https://awesomereviewers.com/raw/bazel-avoid-unnecessary-computations.md) — bazelbuild/bazel, Performance Optimization
- [Measure before optimizing performance](https://awesomereviewers.com/raw/elasticsearch-measure-before-optimizing-performance.md) — elastic/elasticsearch, Performance Optimization
- [Avoid unnecessary allocations](https://awesomereviewers.com/raw/quarkus-avoid-unnecessary-allocations.md) — quarkusio/quarkus, Performance Optimization
- [Minimize object allocations](https://awesomereviewers.com/raw/deeplearning4j-minimize-object-allocations.md) — deeplearning4j/deeplearning4j, Performance Optimization
- [Avoid expensive allocations](https://awesomereviewers.com/raw/react-native-avoid-expensive-allocations.md) — facebook/react-native, Performance Optimization

### 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):

- [Numerical stability practices](https://awesomereviewers.com/raw/deeplearning4j-numerical-stability-practices.md) — deeplearning4j/deeplearning4j, AI

### Logging, metrics, tracing

- No tool-based check applies; rely on the prompts.

Review prompts (5 in total, most discussed first):

- [Consistent observability data](https://awesomereviewers.com/raw/spring-boot-consistent-observability-data.md) — spring-projects/spring-boot, Observability
- [Use logging best practices](https://awesomereviewers.com/raw/deeplearning4j-use-logging-best-practices.md) — deeplearning4j/deeplearning4j, Logging
- [Use parameterized logging](https://awesomereviewers.com/raw/kafka-use-parameterized-logging.md) — apache/kafka, Logging
- [Prevent metrics cardinality explosion](https://awesomereviewers.com/raw/quarkus-prevent-metrics-cardinality-explosion.md) — quarkusio/quarkus, Observability
- [Structured log message quality](https://awesomereviewers.com/raw/spring-boot-structured-log-message-quality.md) — spring-projects/spring-boot, Logging

### 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](https://awesomereviewers.com/raw/quarkus-document-configuration-comprehensively.md) — quarkusio/quarkus, Configurations
- [Configuration clarity standards](https://awesomereviewers.com/raw/bazel-configuration-clarity-standards.md) — bazelbuild/bazel, Configurations
- [Use configuration access methods](https://awesomereviewers.com/raw/elasticsearch-use-configuration-access-methods.md) — elastic/elasticsearch, Configurations
- [Document configuration properties completely](https://awesomereviewers.com/raw/spring-boot-document-configuration-properties-completely.md) — spring-projects/spring-boot, Configurations
- [validate configuration dependencies](https://awesomereviewers.com/raw/kafka-validate-configuration-dependencies.md) — apache/kafka, Configurations
- [build action separation](https://awesomereviewers.com/raw/bazel-build-action-separation.md) — bazelbuild/bazel, CI/CD
- [Configurable over hardcoded](https://awesomereviewers.com/raw/netty-configurable-over-hardcoded.md) — netty/netty, Configurations
- [Use environment-independent defaults](https://awesomereviewers.com/raw/spring-framework-use-environment-independent-defaults.md) — spring-projects/spring-framework, Configurations
- [Configurable resource locations](https://awesomereviewers.com/raw/deeplearning4j-configurable-resource-locations.md) — deeplearning4j/deeplearning4j, Configurations
- [prefer system properties directly](https://awesomereviewers.com/raw/spark-prefer-system-properties-directly.md) — apache/spark, Configurations
- [configuration consistency management](https://awesomereviewers.com/raw/react-native-configuration-consistency-management.md) — 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):

- [comprehensive test coverage](https://awesomereviewers.com/raw/kafka-comprehensive-test-coverage.md) — apache/kafka, Testing
- [Ensure comprehensive test coverage](https://awesomereviewers.com/raw/bazel-ensure-comprehensive-test-coverage.md) — bazelbuild/bazel, Testing
- [Optimize test case design](https://awesomereviewers.com/raw/spring-boot-optimize-test-case-design.md) — spring-projects/spring-boot, Testing
- [Use AssertJ correctly](https://awesomereviewers.com/raw/spring-framework-use-assertj-correctly.md) — spring-projects/spring-framework, Testing
- [Robust test assertions](https://awesomereviewers.com/raw/elasticsearch-robust-test-assertions.md) — elastic/elasticsearch, Testing
- [Reuse test patterns](https://awesomereviewers.com/raw/quarkus-reuse-test-patterns.md) — quarkusio/quarkus, Testing
- [Prevent test resource leaks](https://awesomereviewers.com/raw/netty-prevent-test-resource-leaks.md) — netty/netty, Testing
- [Ensure test determinism](https://awesomereviewers.com/raw/deeplearning4j-ensure-test-determinism.md) — deeplearning4j/deeplearning4j, Testing

### Documentation and comments

- **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):

- [Add explanatory comments](https://awesomereviewers.com/raw/bazel-add-explanatory-comments.md) — bazelbuild/bazel, Documentation
- [Complete API documentation](https://awesomereviewers.com/raw/spring-framework-complete-api-documentation.md) — spring-projects/spring-framework, Documentation
- [Document public APIs](https://awesomereviewers.com/raw/netty-document-public-apis.md) — netty/netty, Documentation
- [Document API completely](https://awesomereviewers.com/raw/deeplearning4j-document-api-completely.md) — deeplearning4j/deeplearning4j, Documentation
- [Document public APIs](https://awesomereviewers.com/raw/quarkus-document-public-apis.md) — quarkusio/quarkus, Documentation
- [Property description conventions](https://awesomereviewers.com/raw/spring-boot-property-description-conventions.md) — spring-projects/spring-boot, Documentation
- [Ensure complete JavaDoc coverage](https://awesomereviewers.com/raw/kafka-ensure-complete-javadoc-coverage.md) — apache/kafka, Documentation
- [Complete method documentation](https://awesomereviewers.com/raw/spark-complete-method-documentation.md) — apache/spark, Documentation

## Source repositories

[flutter/flutter](https://awesomereviewers.com/sources/flutter-flutter/), [facebook/react-native](https://awesomereviewers.com/sources/facebook-react-native/), [spring-projects/spring-boot](https://awesomereviewers.com/sources/spring-projects-spring-boot/), [elastic/elasticsearch](https://awesomereviewers.com/sources/elastic-elasticsearch/), [spring-projects/spring-framework](https://awesomereviewers.com/sources/spring-projects-spring-framework/), [apache/spark](https://awesomereviewers.com/sources/apache-spark/), [netty/netty](https://awesomereviewers.com/sources/netty-netty/), [apache/kafka](https://awesomereviewers.com/sources/apache-kafka/), [bazelbuild/bazel](https://awesomereviewers.com/sources/bazelbuild-bazel/), [quarkusio/quarkus](https://awesomereviewers.com/sources/quarkusio-quarkus/), [deeplearning4j/deeplearning4j](https://awesomereviewers.com/sources/deeplearning4j-deeplearning4j/)
