Skip to content

Exclude static fields from the builder required ones #3933

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 26, 2023

Conversation

sugmanue
Copy link
Contributor

@sugmanue sugmanue commented Apr 21, 2023

Motivation and Context

Currently the ToBuilderIsCorrect validation does not exclude static fields in the builders class and errors out with these fields, e.g., for a class with

class Builder {
   private static final DEFAULT_EXCEPTION_TOKEN_COST = 10;
   private static final DEFAULT_TOKEN_BUCKET_SIZE = 500;
   ...
}

The validation will output something like:

toBuilder() does not update all of the builder's fields. Missing fields: [DEFAULT_EXCEPTION_TOKEN_COST, DEFAULT_TOKEN_BUCKET_SIZE]. This check does not currently consider transitive method calls. If this is a false positive, you can ignore this field by annotating the toBuilder method with @ToBuilderIgnoreField and specifying the fields to ignore.

Modifications

Exclude the fields that are marked as static.

Testing

Tested with the class that cause the error above.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

@sugmanue sugmanue requested a review from a team as a code owner April 21, 2023 00:40
@sugmanue sugmanue mentioned this pull request Apr 21, 2023
12 tasks
@sonarqubecloud
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@sugmanue sugmanue merged commit b0f5737 into master Apr 26, 2023
@sugmanue sugmanue deleted the fix-to-builder-to-ignore-static-fields branch April 26, 2023 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants