Releases: SonarSource/sonar-java
7.27.0.33463
Release notes - SonarJava - 7.27
Bug
SONARJAVA-4658 JavaSonarWayProfile has unsatisfied dependency "ProfileRegistrar"
New Feature
SONARJAVA-4643 Implement S6804: @Value
annotation should inject property or SpEL expression
SONARJAVA-4645 Implement S6806: Model attribute Naming Convention for Spring Expression Language (SpEL)
SONARJAVA-4648 Implement S6810: Async methods should return void or Future
SONARJAVA-4649 Implement S6813: Avoid field dependency injection
SONARJAVA-4652 Implement S6809: @Async
annotated methods should not be called via "this"
SONARJAVA-4653 Implement S6814: Optional REST parameters should have an object type
Task
SONARJAVA-4661 Update Rules Metadata
Improvement
SONARJAVA-4651 Extend S2230 with @Async
annotation
7.26.0.33315
Release notes - SonarJava - 7.26
Sub-task
SONARJAVA-4383 [jakarta support] Include support of migrated javax packages 2/3
SONARJAVA-4388 [jakarta support] Include support of migrated javax packages 3/3
SONARJAVA-4612 [jakarta support] Include support of migrated javax packages 1/3
Task
SONARJAVA-4657 Update rules metadata
Improvement
SONARJAVA-4377 Update rules related to "javax" library to support also "jakarta" - Part 1/2
7.25.0.32245
Release notes - SonarJava - 7.25
False-Positive
SONARJAVA-4592 FP on S3518 when the divisor is a non-zero double
Task
SONARJAVA-4607 Expose JavaVersionAwareVisitor via custom rule API
Improvement
SONARJAVA-4570 S106 "Compliant solution" section should give more details about how to configure a "logger".
SONARJAVA-4593 Rule S5689: Change the message
SONARJAVA-4609 [Custom Rules] CheckRegistrar classes can register check instances, default quality profile and AutoScan
7.24.0.32100
Release notes - SonarJava - 7.24
Documentation
SONARJAVA-4463 Add significant example to S2589
SONARJAVA-4495 LayC: review and update as appropriate SonarWay rules
SONARJAVA-4578 LaYC: review and update as appropriate SonarWay rules (loops and iterators)
False-Positive
SONARJAVA-4478 FP for S1948 on annotation "javax.annotation.Resource"
SONARJAVA-4563 S1258: Add "lombok.Builder" to excluded annotations list
False Negative
SONARJAVA-4503 FN on rule S2140 on random floating point numbers cast to long
Task
SONARJAVA-4585 Update rules metadata
Improvement
SONARJAVA-4509 S2438: Provide an actionable issue message
SONARJAVA-4559 Provide a list of impacted files when displaying DEBUG log of unresolved imports/types
SONARJAVA-4574 Issue message of S106 can be more precise and do not need the `or` section
7.23.0.32023
Release notes - SonarJava - 7.23
Bug
SONARJAVA-4477 S1125 quickfix breaking compilation with instanceof
False-Positive
SONARJAVA-1186 Indentation Check (S1120): Block in case of switch statements are not taken into account
SONARJAVA-4007 FP in S1120 with switch expressions
SONARJAVA-4401 FP on Rule S1120 (indentation checking) regarding switch blocks
SONARJAVA-4411 FP S1075 Regex or Pattern are not hardcoded URI
SONARJAVA-4519 FP on S100 when using OSGI annotation `AttributeDefinition`
SONARJAVA-4527 S6204 Collections.reverse(List) is not considered a modification
SONARJAVA-4530 FP on S110 for javafx package
Task
SONARJAVA-4569 Update rules metadata
Improvement
SONARJAVA-4467 Remove deprecation S2039 for Java
SONARJAVA-4528 Lower log level for error messages in ContentHashCache
SONARJAVA-4551 [S3749] Update issue type from vulnerability to code-smell
SONARJAVA-4556 Add a language to the PMD Sensor descriptor
SONARJAVA-4557 Add missing dependencies to Writing Custom Java Rules 101
7.22.0.31918
Release notes - SonarJava - 7.22
Documentation
SONARJAVA-4490, SONARJAVA-4493, SONARJAVA-4494, SONARJAVA-4496 New Learn as You Code rule descriptions
SONARJAVA-4514 Update Custom rules documentation regarding SQ LTS
False-Positive
SONARJAVA-4180 S6103 should not raise issues on invocations of methods declared outside the file
SONARJAVA-4516 FP on S5411 when non-nullable object is cast to "Boolean"
Task
SONARJAVA-4444 Upgrade sonar-plugin-api to 9.14.0.375 or greater
SONARJAVA-4555 Update rules metadata
7.21.0.31796
Release notes - SonarJava - 7.21
Documentation
SONARJAVA-4482 LayC: review and update as appropriate SonarWay rules (1 of 15)
SONARJAVA-4483 LayC: review and update as appropriate SonarWay rules (2 of 15)
SONARJAVA-4484 LayC: review and update as appropriate SonarWay rules (3 of 15)
SONARJAVA-4485 LayC: review and update as appropriate SonarWay rules (4 of 15)
SONARJAVA-4486 LayC: review and update as appropriate SonarWay rules (5.1 of 15)
SONARJAVA-4487 LayC: review and update as appropriate SonarWay rules (6 of 15)
SONARJAVA-4488 LayC: review and update as appropriate SonarWay rules (7 of 15)
SONARJAVA-4489 LayC: review and update as appropriate SonarWay rules (8.1 of 15)
SONARJAVA-4491 LayC: review and update as appropriate SonarWay rules (10 of 15)
SONARJAVA-4492 LayC: review and update as appropriate SonarWay rules (11 of 15)
SONARJAVA-4506 Rule S1291 (NoSonar) metadata are not up to date and do not follow LayC format
SONARJAVA-4524 Update rules metadata
False-Positive
SONARJAVA-4107 Rule S100 - Underscore in method is acceptable when using SpringData
SONARJAVA-4476 FP for S2629 on record getter methods
SONARJAVA-4497 FP on S2142 when using union types and rethrowing
SONARJAVA-4501 FP on S1149 when overriding a method and using same symbols of the signature within method body
Task
SONARJAVA-4445 Upgrade sonarlint-plugin-api to version 8.15.0.65216 or greater
Improvement
SONARJAVA-4518 Introduce a new Spring Issue Filter to filter out spring-specific cases
7.20.0.31692
Release notes - SonarJava - 7.20
Bug
SONARJAVA-4233 Constants accessed with member-select create different SV every time when placed in loops
SONARJAVA-4420 S3518 crashes with IndexOutOfBoundsException for certain inputs
False Negative
SONARJAVA-2126 Unboxing of NULL primitive wrapper raises NPE and should be detected by S2259 (NullDereferenceCheck)
SONARJAVA-4475 FN on S2589 when a constant is outside method scope
Task
SONARJAVA-4498 Upgrade sonar-analyzer-commons 2.5.0.1358
SONARJAVA-4499 Update rules metadata
Improvement
SONARJAVA-4097 Stop method SE at the first unknown method call symbol in Autoscan context
SONARJAVA-4286 Support "ZERO" constraints in (hardcoded) method behaviors
SONARJAVA-4423 Symbolic execution rules metadata should be tagged with "symbolic execution"
SONARJAVA-4442 S3518 DivisionByZeroCheck reports misleading secondary locations
7.19.0.31550
Release notes - SonarJava - 7.19
Breaking change: If you are using Java 19+ preview features, now SonarJava does not enable them automatically, you need to set sonar.java.enablePreview=true
explicitly.
False Negative
SONARJAVA-4443 Rule S6437: Add jjwt support
New Feature
SONARJAVA-4369 S6485: Hash-based collections with known capacity should be initialized with the proper related static method
SONARJAVA-4464 Add a new "sonar.java.enablePreview" analysis parameter, disabled by default
Task
SONARJAVA-4468 Update rule metadata
Improvement
SONARJAVA-4378 Update ECJ to 3.33.0
7.18.0.31443
Release notes - SonarJava - 7.18
Bug
SONARJAVA-4396 The Java analyzer distinguishes between changed and unchanged in files in PR context
New Feature
SONARJAVA-4433 S6539: Class depends on an excessive number of classes
SONARJAVA-4434 S6541: Methods should not perform too many tasks (Brain method)
SONARJAVA-4440 S6548: Identify Singleton Design Patterns
Task
SONARJAVA-4455 Update Rules Metadata
Improvement
SONARJAVA-4277 Fix S1142 message wording and secondaries