[ErrorProne] enable AutoValueSubclassLeaked, EscapedEntity, JUnitIncompatibleType, EqualsUnsafeCast#38256
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enables a suite of ErrorProne checks that were previously disabled in the project's build configuration. To support this, the codebase has been refactored to eliminate direct dependencies on generated AutoValue classes, improve Javadoc documentation by fixing escaped entities, and resolve type-related issues in tests. These changes improve code quality and maintainability by enforcing stricter static analysis rules. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
…EscapedEntity, JUnitIncompatibleType, EqualsUnsafeCast
c24c50d to
7b82897
Compare
…le in ApproximateQuantiles
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request enables several previously disabled ErrorProne checks, including AutoValueSubclassLeaked, EscapedEntity, and NonCanonicalType. The changes involve refactoring the codebase to avoid direct references to generated AutoValue classes by introducing static factory methods, using instanceof checks, and updating Javadoc to resolve entity escaping issues. Feedback was provided to improve the Javadoc formatting in ApproximateQuantiles.java by using literal characters within a {@code} block instead of removing the block entirely.
| * weight, and picking out the (k * step + offset)-th elements of this list for 0 <= k < | ||
| * count. |
There was a problem hiding this comment.
While removing {@code} resolves the EscapedEntity check, it's generally better to keep the code formatting for mathematical expressions in Javadoc. You can use the literal characters inside the {@code} block instead of HTML entities.
| * weight, and picking out the (k * step + offset)-th elements of this list for 0 <= k < | |
| * count. | |
| * weight, and picking out the (k * step + offset)-th elements of this list for {@code 0 <= k < | |
| * count}. |
|
flaky flink, same happening on master -https://github.com/apache/beam/actions/runs/24769744791/job/72472821150 |
|
Checks are failing. Will not request review until checks are succeeding. If you'd like to override that behavior, comment |
|
Assigning reviewers: R: @Abacn for label java. Note: If you would like to opt out of this review, comment Available commands:
The PR bot will only process comments in the main thread (not review comments). |
kennknowles
left a comment
There was a problem hiding this comment.
Some of these are legit bugs! (like the equals check that demanded a particular hidden class). Great.
Description
This PR resolves violations for several ErrorProne checks that were previously disabled in
BeamModulePlugin.groovy.Changes by ErrorProne Check
AutoValueSubclassLeaked
sdks/java/io/google-cloud-platform:BigQueryIO.java: Added staticbuilder()methods toTypedReadandWriteclasses to avoid direct referencing of generated AutoValue builders.BigQueryIOTranslation.java: Updated to use new static builder methods.BigQueryCoderProviderRegistrar.java: Replaced direct reference toAutoValue_RowMutation.classwithRowMutation.class.WritePartition.java: Added public static factory methodof(...)toResultclass.WriteTables.java: Added public static factory methodof(...)toResultclass.BigQueryIOWriteTest.java: Updated to use new factory methods.runners/java-fn-execution:DefaultJobBundleFactory.java: Addedbuilder()method toServerInfoto avoid direct reference toAutoValue_DefaultJobBundleFactory_ServerInfo.Builder.DefaultJobBundleFactoryTest.java: Updated to use the new builder.sdks/java/io/mongodb:MongoDbIO.java: ReplacedgetClass() == AutoValue_FindQuery.classwithinstanceof FindQueryto avoid direct references to generated classes.sdks/java/core:GenerateSequenceTest.java: Replaced direct instantiation ofAutoValue_GenerateSequencewith factory methods.EscapedEntity
sdks/java/io/hadoop-format:HadoopFormatIO.java: Fixed HTML entities like<and"inside Javadoc{@code ...}blocks.sdks/java/core:ApproximateQuantiles.java: Fixed HTML entities like<inside Javadoc{@code ...}blocks.JUnitIncompatibleType
sdks/java/core:LogicalTypesTest.java: Fixed incompatible types inassertEqualsby using the correct expected class type.EqualsUnsafeCast
sdks/java/core:TestPOJOs.java: Fixed wrong class ininstanceofcheck inequalsmethod (checkedPojoWithNestedArraybut cast toPojoWithIterable).Build Configuration
buildSrc:BeamModulePlugin.groovy: EnabledAutoValueSubclassLeaked,EqualsUnsafeCast,EscapedEntity,NonCanonicalType,UnescapedEntity, andJUnitIncompatibleTypeby removing them fromdisabledChecks.Verification
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, commentfixes #<ISSUE NUMBER>instead.CHANGES.mdwith noteworthy changes.See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)
See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.