-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
[java] LawOfDemeter: False positive for standard UTF-8 charset name #1605
Comments
@mcandre thanks for the report. Effectively, public constants are intended to be used this way, so it's probably safe to whitelist them (at least 1 level). I can see the same thing happening with enums: |
You could create an instance variable (in your case, a static one) that points to StandardCharsets.UTF_8.name() and that would resolve this false positive. |
- Fixes pmd#2175 - Fixes pmd#2179 - Fixes pmd#1605: same fix as pmd#2179, since enum constants are static fields they are trusted. - Fixes pmd#2180: the fix is not to special-case Thread, but to consider all static methods as trusted (consistent with the treatment of static fields in pmd#2179) - Fixes pmd#2182: the fix is not to allow package-private access, but to allow a class to access fields of instances of the same class. - Fixes pmd#1014 - Fixes pmd#2188
This is fixed in PMD 7.0.0-rc1. It won't be backported to PMD 6. |
Affects PMD Version:
6
Rule:
LawOfDemeter
Description:
PMD's application of the Law of Demeter considers it a violation to query the standard name of the Java UTF-8 character set. Unless the character set is assigned to an explicit variable name first.
Code Sample demonstrating the issue:
As a workaround, I am disabling this rule in my rulesets.xml:
Running PMD through: [CLI | Ant | Maven | Gradle | Designer | Other]
Gradle
The text was updated successfully, but these errors were encountered: