Skip to content

Commit 62429e1

Browse files
SONARJAVA-4473 fix FP in S2384 when mutable value is stored by private methods or constructors (#5112)
To reduce false positives, we only consider non-private methods.
1 parent b1631ce commit 62429e1

7 files changed

Lines changed: 54 additions & 115 deletions

File tree

its/ruling/src/test/resources/commons-beanutils/java-S2384.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,5 @@
2525
"commons-beanutils:commons-beanutils:src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java": [
2626
186,
2727
197
28-
],
29-
"commons-beanutils:commons-beanutils:src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java": [
30-
505
3128
]
3229
}

its/ruling/src/test/resources/eclipse-jetty-similar-to-main/java-S2384.json

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,14 @@
2121
118
2222
],
2323
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java": [
24-
742,
25-
955
24+
742
2625
],
2726
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/NegotiatingClientConnection.java": [
2827
45
2928
],
3029
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/WriteFlusher.java": [
31-
217,
3230
223
3331
],
34-
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslClientConnectionFactory.java": [
35-
148
36-
],
3732
"org.eclipse.jetty:jetty-project:jetty-jmx/src/main/java/org/eclipse/jetty/jmx/MetaData.java": [
3833
73
3934
],
@@ -89,9 +84,7 @@
8984
196
9085
],
9186
"org.eclipse.jetty:jetty-project:jetty-server/src/main/java/org/eclipse/jetty/server/SecureRequestCustomizer.java": [
92-
354,
93-
430,
94-
441
87+
354
9588
],
9689
"org.eclipse.jetty:jetty-project:jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java": [
9790
343,

its/ruling/src/test/resources/eclipse-jetty/java-S2384.json

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,14 @@
2121
118
2222
],
2323
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java": [
24-
742,
25-
955
24+
742
2625
],
2726
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/NegotiatingClientConnection.java": [
2827
45
2928
],
3029
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/WriteFlusher.java": [
31-
217,
3230
223
3331
],
34-
"org.eclipse.jetty:jetty-project:jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslClientConnectionFactory.java": [
35-
148
36-
],
3732
"org.eclipse.jetty:jetty-project:jetty-jmx/src/main/java/org/eclipse/jetty/jmx/MetaData.java": [
3833
73
3934
],
@@ -89,9 +84,7 @@
8984
196
9085
],
9186
"org.eclipse.jetty:jetty-project:jetty-server/src/main/java/org/eclipse/jetty/server/SecureRequestCustomizer.java": [
92-
354,
93-
430,
94-
441
87+
354
9588
],
9689
"org.eclipse.jetty:jetty-project:jetty-server/src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java": [
9790
343,
@@ -135,9 +128,6 @@
135128
"org.eclipse.jetty:jetty-project:jetty-util/src/main/java/org/eclipse/jetty/util/PathWatcher.java": [
136129
757
137130
],
138-
"org.eclipse.jetty:jetty-project:jetty-util/src/main/java/org/eclipse/jetty/util/SearchPattern.java": [
139-
72
140-
],
141131
"org.eclipse.jetty:jetty-project:jetty-util/src/main/java/org/eclipse/jetty/util/component/AbstractLifeCycle.java": [
142132
194
143133
],
@@ -172,9 +162,7 @@
172162
],
173163
"org.eclipse.jetty:jetty-project:jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlConfiguration.java": [
174164
285,
175-
296,
176-
1611,
177-
1612
165+
296
178166
],
179167
"org.eclipse.jetty:jetty-project:jetty-xml/src/main/java/org/eclipse/jetty/xml/XmlParser.java": [
180168
560

its/ruling/src/test/resources/guava/java-S2384.json

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,10 @@
33
1314,
44
1315
55
],
6-
"com.google.guava:guava:src/com/google/common/base/Predicates.java": [
7-
367,
8-
409
9-
],
10-
"com.google.guava:guava:src/com/google/common/base/SmallCharMatcher.java": [
11-
40
12-
],
136
"com.google.guava:guava:src/com/google/common/cache/LocalCache.java": [
147
4498
158
],
169
"com.google.guava:guava:src/com/google/common/collect/AbstractBiMap.java": [
17-
63,
1810
69,
1911
96
2012
],
@@ -39,12 +31,6 @@
3931
"com.google.guava:guava:src/com/google/common/collect/HashBiMap.java": [
4032
684
4133
],
42-
"com.google.guava:guava:src/com/google/common/collect/ImmutableEnumMap.java": [
43-
52
44-
],
45-
"com.google.guava:guava:src/com/google/common/collect/ImmutableEnumSet.java": [
46-
57
47-
],
4834
"com.google.guava:guava:src/com/google/common/collect/ImmutableMapEntrySet.java": [
4935
42
5036
],
@@ -60,7 +46,6 @@
6046
767,
6147
1316,
6248
1320,
63-
3118,
6449
3133,
6550
3174,
6651
3179,
@@ -69,26 +54,16 @@
6954
"com.google.guava:guava:src/com/google/common/collect/Multisets.java": [
7055
1041
7156
],
72-
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableBiMap.java": [
73-
112,
74-
113,
75-
114
76-
],
7757
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableList.java": [
7858
40
7959
],
80-
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableMap.java": [
81-
91,
82-
92
83-
],
8460
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableSet.java": [
8561
44
8662
],
8763
"com.google.guava:guava:src/com/google/common/collect/RegularImmutableSortedMultiset.java": [
8864
54
8965
],
9066
"com.google.guava:guava:src/com/google/common/collect/Sets.java": [
91-
1194,
9267
1199,
9368
1602,
9469
1607,
@@ -99,21 +74,16 @@
9974
58
10075
],
10176
"com.google.guava:guava:src/com/google/common/collect/Synchronized.java": [
102-
1116,
10377
1128,
10478
1146
10579
],
10680
"com.google.guava:guava:src/com/google/common/collect/TreeRangeSet.java": [
107-
268,
108-
274,
109-
433
81+
268
11082
],
11183
"com.google.guava:guava:src/com/google/common/collect/WellBehavedMap.java": [
112-
43,
11384
57
11485
],
11586
"com.google.guava:guava:src/com/google/common/escape/ArrayBasedEscaperMap.java": [
116-
64,
11787
69
11888
],
11989
"com.google.guava:guava:src/com/google/common/escape/CharEscaperBuilder.java": [

its/ruling/src/test/resources/sonar-server/java-S2384.json

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,9 @@
1616
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/batch/BatchWs.java": [
1717
33
1818
],
19-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/batch/ProjectDataLoader.java": [
20-
225,
21-
226
22-
],
2319
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/ce/ws/CeWs.java": [
2420
31
2521
],
26-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/ce/ws/TaskFormatter.java": [
27-
152,
28-
153
29-
],
3022
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/component/ComponentService.java": [
3123
43
3224
],
@@ -45,22 +37,13 @@
4537
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/component/ws/FilterParser.java": [
4638
142
4739
],
48-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java": [
49-
411,
50-
413,
51-
414,
52-
460,
53-
461,
54-
464
55-
],
5640
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/api/measurecomputer/MeasureComputerContextImpl.java": [
5741
183
5842
],
5943
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/api/posttask/ConditionToCondition.java": [
6044
41
6145
],
6246
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/api/posttask/ScannerContextImpl.java": [
63-
35,
6447
40
6548
],
6649
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/component/DisabledComponentsHolderImpl.java": [
@@ -107,8 +90,7 @@
10790
102
10891
],
10992
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadMeasureComputersStep.java": [
110-
58,
111-
144
93+
58
11294
],
11395
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/computation/task/projectanalysis/step/PersistComponentsStep.java": [
11496
170
@@ -180,16 +162,11 @@
180162
126
181163
],
182164
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/exceptions/BadRequestException.java": [
183-
38,
184165
52
185166
],
186167
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/favorite/ws/FavoritesWs.java": [
187168
28
188169
],
189-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/favorite/ws/SearchAction.java": [
190-
121,
191-
122
192-
],
193170
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/issue/Action.java": [
194171
62
195172
],
@@ -235,7 +212,6 @@
235212
],
236213
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/issue/Result.java": [
237214
70,
238-
95,
239215
119
240216
],
241217
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/issue/index/IssueIteratorForSingleChunk.java": [
@@ -300,9 +276,6 @@
300276
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/metric/ws/MetricsWs.java": [
301277
31
302278
],
303-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/metric/ws/SearchAction.java": [
304-
98
305-
],
306279
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/notification/DefaultNotificationManager.java": [
307280
59
308281
],
@@ -320,7 +293,6 @@
320293
28
321294
],
322295
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/permission/ApplyPermissionTemplateQuery.java": [
323-
34,
324296
47
325297
],
326298
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/permission/index/PermissionIndexer.java": [
@@ -375,24 +347,15 @@
375347
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/Visibility.java": [
376348
68
377349
],
378-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/ws/GhostsAction.java": [
379-
149
380-
],
381350
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/ws/ProjectsWs.java": [
382351
32
383352
],
384-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/ws/ProvisionedAction.java": [
385-
150
386-
],
387353
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/ws/SearchMyProjectsData.java": [
388354
106,
389355
111,
390356
116,
391357
121
392358
],
393-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/project/ws/SearchMyProjectsDataLoader.java": [
394-
97
395-
],
396359
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/projectanalysis/ws/ProjectAnalysesWs.java": [
397360
29
398361
],
@@ -414,7 +377,6 @@
414377
247
415378
],
416379
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/qualitygate/QgateProjectFinder.java": [
417-
97,
418380
102
419381
],
420382
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/qualitygate/ws/QualityGatesWs.java": [
@@ -486,9 +448,6 @@
486448
78,
487449
173
488450
],
489-
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/rule/RuleUpdater.java": [
490-
275
491-
],
492451
"org.sonarsource.sonarqube:sonar-server:src/main/java/org/sonar/server/rule/index/RuleQuery.java": [
493452
103,
494453
107,

0 commit comments

Comments
 (0)