Statistics

For our testing we measured 50 open source projects on GitHub.

The following statistics show results on those projects. The jSparrow GitHub Beta version has been used to produce the results. All measurements were created in November 2018.

jSparrow results for rocketmq

Metrics for rocketmq:
Total Java file* count 654
Number of files changed 652
Total number of issues fixed 2785
jSparrow execution time 8 minutes, 9 seconds
Total time saved 183 hours, 48 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on rocketmq.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 114 62 9 hours, 30 minutes
UseIsEmptyOnCollections 6 6 12 minutes
StringLiteralEqualityCheck 23 10 3 hours, 50 minutes
RemoveToStringOnString 2 2 4 minutes
InefficientConstructor 21 4 1 hour, 45 minutes
ForToForEach 11 11 55 minutes
MultiVariableDeclarationLine 13 8 26 minutes
BracketsToControl 463 78 15 hours, 26 minutes
RemoveUnnecessaryThrows 8 3 16 minutes
RemoveExplicitCallToSuper 15 12 15 minutes
StringUtils 204 68 34 hours, 0 minutes
WhileToForEach 5 4 25 minutes
MultiCatch 1 1 5 minutes
StandardLogger 417 118 69 hours, 30 minutes
ArithmethicAssignment 6 6 12 minutes
EnumsWithoutEquals 35 7 1 hour, 10 minutes
RearrangeClassMembers 31 27 2 hours, 35 minutes
OverrideAnnotation 198 52 16 hours, 30 minutes
CodeFormatter 652 652 10 hours, 52 minutes
UseStringBuilderAppend 373 139 12 hours, 26 minutes
StringFormatLineSeparator 4 2 4 minutes
StringBufferToBuilder 10 8 20 minutes
ReImplementingInterface 1 1 2 minutes
DiamondOperator 169 74 2 hours, 49 minutes
PrimitiveBoxedForString 1 1 5 minutes
PrimitiveObjectUseEquals 2 2 4 minutes


jSparrow results for spring-cloud-gateway

Metrics for spring-cloud-gateway:
Total Java file* count 140
Number of files changed 113
Total number of issues fixed 249
jSparrow execution time 9 minutes, 39 seconds
Total time saved 14 hours, 18 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on spring-cloud-gateway.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 13 8 3 hours, 15 minutes
StandardLogger 6 5 1 hour, 0 minutes
GuardCondition 8 8 40 minutes
FieldRenaming 7 2 1 hour, 45 minutes
StatementLambdaToExpression 12 12 1 hour, 0 minutes
StringLiteralEqualityCheck 1 1 10 minutes
InefficientConstructor 2 2 10 minutes
LambdaForEachMap 1 1 15 minutes
RearrangeClassMembers 13 12 1 hour, 5 minutes
EnumsWithoutEquals 3 2 6 minutes
OverrideAnnotation 9 9 45 minutes
CodeFormatter 111 111 1 hour, 51 minutes
BracketsToControl 10 6 20 minutes
UseStringBuilderAppend 38 23 1 hour, 16 minutes
RemoveUnnecessaryThrows 2 2 4 minutes
StringBufferToBuilder 3 3 6 minutes
LambdaToMethodReference 4 3 8 minutes
DiamondOperator 2 2 2 minutes
PrimitiveBoxedForString 3 1 15 minutes
LambdaForEachIfWrapperToFilter 1 1 5 minutes


jSparrow results for enmasse

Metrics for enmasse:
Total Java file* count 423
Number of files changed 190
Total number of issues fixed 455
jSparrow execution time 6 minutes, 45 seconds
Total time saved 29 hours, 33 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on enmasse.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 41 11 10 hours, 15 minutes
StandardLogger 1 1 10 minutes
GuardCondition 3 3 15 minutes
EnhancedForLoopToStreamFindFirst 9 5 18 minutes
FieldRenaming 27 2 6 hours, 45 minutes
StatementLambdaToExpression 19 7 1 hour, 35 minutes
StringLiteralEqualityCheck 1 1 10 minutes
PutIfAbsent 1 1 2 minutes
LambdaForEachMap 2 2 30 minutes
RearrangeClassMembers 10 10 50 minutes
EnumsWithoutEquals 4 3 8 minutes
OverrideAnnotation 8 6 40 minutes
CodeFormatter 190 190 3 hours, 10 minutes
BracketsToControl 70 32 2 hours, 20 minutes
UseStringBuilderAppend 44 25 1 hour, 28 minutes
RemoveUnnecessaryThrows 7 7 14 minutes
LambdaToMethodReference 12 9 24 minutes
RemoveExplicitCallToSuper 2 2 2 minutes
EnhancedForLoopToStreamAnyMatch 1 1 2 minutes
MultiCatch 1 1 5 minutes
LambdaForEachIfWrapperToFilter 2 2 10 minutes


jSparrow results for philadelphia

Metrics for philadelphia:
Total Java file* count 75
Number of files changed 66
Total number of issues fixed 171
jSparrow execution time 6 minutes, 4 seconds
Total time saved 5 hours, 37 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on philadelphia.
Rule ID Issues Fixed Files Changed Time saved
CodeFormatter 66 66 1 hour, 6 minutes
BracketsToControl 78 20 2 hours, 36 minutes
EnhancedForLoopToStreamForEach 1 1 15 minutes
GuardCondition 1 1 5 minutes
UseStringBuilderAppend 3 3 6 minutes
RemoveUnnecessaryThrows 8 1 16 minutes
LambdaToMethodReference 1 1 2 minutes
StatementLambdaToExpression 1 1 5 minutes
StringUtils 2 1 20 minutes
RearrangeClassMembers 8 8 40 minutes
RemoveEmptyStatement 1 1 1 minute
OverrideAnnotation 1 1 5 minutes


jSparrow results for proxyee-down

Metrics for proxyee-down:
Total Java file* count 42
Number of files changed 11
Total number of issues fixed 28
jSparrow execution time 3 minutes, 46 seconds
Total time saved 2 hours, 28 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on proxyee-down.
Rule ID Issues Fixed Files Changed Time saved
CodeFormatter 11 11 11 minutes
EnhancedForLoopToStreamForEach 3 2 45 minutes
EnhancedForLoopToStreamFindFirst 1 1 2 minutes
FieldRenaming 4 1 1 hour, 0 minutes
UseStringBuilderAppend 1 1 2 minutes
LambdaToMethodReference 4 4 8 minutes
StatementLambdaToExpression 3 2 15 minutes
LambdaForEachIfWrapperToFilter 1 1 5 minutes


jSparrow results for canal

Metrics for canal:
Total Java file* count 389
Number of files changed 386
Total number of issues fixed 4006
jSparrow execution time 21 minutes, 49 seconds
Total time saved 433 hours, 58 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on canal.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 174 47 14 hours, 30 minutes
LambdaForEachCollect 1 1 15 minutes
UseIsEmptyOnCollections 9 6 18 minutes
StringLiteralEqualityCheck 17 9 2 hours, 50 minutes
LambdaForEachMap 7 6 1 hour, 45 minutes
InefficientConstructor 22 2 1 hour, 50 minutes
ForToForEach 25 5 2 hours, 5 minutes
MultiVariableDeclarationLine 1 1 2 minutes
RemoveEmptyStatement 7 6 7 minutes
FlatMapInsteadOfNestedLoops 2 2 30 minutes
BracketsToControl 249 33 8 hours, 18 minutes
RemoveUnnecessaryThrows 252 52 8 hours, 24 minutes
RemoveExplicitCallToSuper 4 4 4 minutes
StringUtils 9 4 1 hour, 30 minutes
MultiCatch 2 2 10 minutes
StandardLogger 123 51 20 hours, 30 minutes
EnhancedForLoopToStreamForEach 49 21 12 hours, 15 minutes
FieldRenaming 956 11 239 hours, 0 minutes
EnhancedForLoopToStreamFindFirst 3 1 6 minutes
StatementLambdaToExpression 24 17 2 hours, 0 minutes
ArithmethicAssignment 7 4 14 minutes
RearrangeClassMembers 104 64 8 hours, 40 minutes
EnumsWithoutEquals 43 5 1 hour, 26 minutes
OverrideAnnotation 1027 131 85 hours, 35 minutes
CodeFormatter 386 386 6 hours, 26 minutes
UseStringBuilderAppend 337 105 11 hours, 14 minutes
ReImplementingInterface 10 10 20 minutes
StringBufferToBuilder 2 2 4 minutes
LambdaToMethodReference 9 8 18 minutes
DiamondOperator 131 57 2 hours, 11 minutes
PrimitiveBoxedForString 1 1 5 minutes
PrimitiveObjectUseEquals 3 2 6 minutes
LambdaForEachIfWrapperToFilter 10 9 50 minutes


jSparrow results for kapua

Metrics for kapua:
Total Java file* count 1503
Number of files changed 1018
Total number of issues fixed 1741
jSparrow execution time 15 minutes, 14 seconds
Total time saved 79 hours, 54 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on kapua.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 20 17 1 hour, 40 minutes
UseIsEmptyOnCollections 4 3 8 minutes
StringLiteralEqualityCheck 5 3 50 minutes
RemoveToStringOnString 2 2 4 minutes
InefficientConstructor 4 1 20 minutes
ForToForEach 1 1 5 minutes
RemoveUnnecessaryThrows 47 14 1 hour, 34 minutes
RemoveExplicitCallToSuper 57 57 57 minutes
StringUtils 84 31 14 hours, 0 minutes
StringConcatToPlus 3 3 15 minutes
StandardLogger 35 20 5 hours, 50 minutes
EnhancedForLoopToStreamForEach 26 18 6 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 1 1 2 minutes
StatementLambdaToExpression 39 20 3 hours, 15 minutes
FunctionalInterface 20 6 1 hour, 40 minutes
ImmutableStaticFinalCollections 8 8 1 hour, 20 minutes
RearrangeClassMembers 96 95 8 hours, 0 minutes
EnumsWithoutEquals 33 15 1 hour, 6 minutes
OverrideAnnotation 153 42 12 hours, 45 minutes
CodeFormatter 1018 1018 16 hours, 58 minutes
UseStringBuilderAppend 29 18 58 minutes
ReImplementingInterface 14 13 28 minutes
LambdaToMethodReference 4 3 8 minutes
StringBufferToBuilder 1 1 2 minutes
DiamondOperator 32 20 32 minutes
StringBuildingLoop 1 1 10 minutes
IndexOfToContains 1 1 2 minutes
LambdaForEachIfWrapperToFilter 3 3 15 minutes


jSparrow results for jsprit

Metrics for jsprit:
Total Java file* count 355
Number of files changed 346
Total number of issues fixed 2314
jSparrow execution time 7 minutes, 10 seconds
Total time saved 137 hours, 2 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on jsprit.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 118 32 19 hours, 40 minutes
GuardCondition 34 24 2 hours, 50 minutes
FieldRenaming 161 8 40 hours, 15 minutes
UseIsEmptyOnCollections 1 1 2 minutes
StringLiteralEqualityCheck 61 12 10 hours, 10 minutes
ArithmethicAssignment 4 3 8 minutes
ForToForEach 8 4 40 minutes
RearrangeClassMembers 108 89 9 hours, 0 minutes
EnumsWithoutEquals 72 21 2 hours, 24 minutes
RemoveEmptyStatement 1 1 1 minute
OverrideAnnotation 53 26 4 hours, 25 minutes
BracketsToControl 797 136 26 hours, 34 minutes
CodeFormatter 346 346 5 hours, 46 minutes
UseStringBuilderAppend 248 73 8 hours, 16 minutes
ReImplementingInterface 2 2 4 minutes
StringBufferToBuilder 1 1 2 minutes
RemoveExplicitCallToSuper 119 95 1 hour, 59 minutes
WhileToForEach 1 1 5 minutes
TryWithResource 1 1 15 minutes
MultiCatch 1 1 5 minutes
DiamondOperator 156 69 2 hours, 36 minutes
PrimitiveBoxedForString 21 10 1 hour, 45 minutes


jSparrow results for Activiti

Metrics for Activiti:
Total Java file* count 1527
Number of files changed 1516
Total number of issues fixed 7409
jSparrow execution time 14 minutes, 32 seconds
Total time saved 550 hours, 51 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on Activiti.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 230 132 19 hours, 10 minutes
LambdaForEachCollect 5 5 1 hour, 15 minutes
UseIsEmptyOnCollections 14 9 28 minutes
StringLiteralEqualityCheck 75 23 12 hours, 30 minutes
RemoveToStringOnString 4 4 8 minutes
PutIfAbsent 14 6 28 minutes
LambdaForEachMap 31 23 7 hours, 45 minutes
InefficientConstructor 31 9 2 hours, 35 minutes
ForToForEach 7 5 35 minutes
MultiVariableDeclarationLine 6 3 12 minutes
BracketsToControl 59 33 1 hour, 58 minutes
RemoveUnnecessaryThrows 115 15 3 hours, 50 minutes
RemoveExplicitCallToSuper 4 4 4 minutes
WhileToForEach 5 4 25 minutes
MultiCatch 8 4 40 minutes
TryWithResource 1 1 15 minutes
EnhancedForLoopToStreamForEach 585 237 146 hours, 15 minutes
StandardLogger 103 35 17 hours, 10 minutes
FieldRenaming 10 2 2 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 16 11 32 minutes
StatementLambdaToExpression 388 198 32 hours, 20 minutes
FunctionalInterface 46 21 3 hours, 50 minutes
RemoveNewStringConstructor 2 1 10 minutes
RearrangeClassMembers 25 25 2 hours, 5 minutes
EnumsWithoutEquals 25 10 50 minutes
OverrideAnnotation 2737 605 228 hours, 5 minutes
CodeFormatter 1516 1516 25 hours, 16 minutes
UseStringBuilderAppend 453 221 15 hours, 6 minutes
LambdaToMethodReference 73 49 2 hours, 26 minutes
ReImplementingInterface 14 14 28 minutes
StringBufferToBuilder 3 2 6 minutes
EnhancedForLoopToStreamAnyMatch 2 1 4 minutes
DiamondOperator 675 243 11 hours, 15 minutes
PrimitiveBoxedForString 12 2 1 hour, 0 minutes
IndexOfToContains 10 2 20 minutes
LambdaForEachIfWrapperToFilter 105 69 8 hours, 45 minutes


jSparrow results for lance

Metrics for lance:
Total Java file* count 219
Number of files changed 216
Total number of issues fixed 724
jSparrow execution time 7 minutes, 14 seconds
Total time saved 41 hours, 44 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on lance.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 7 4 35 minutes
UseIsEmptyOnCollections 1 1 2 minutes
RemoveToStringOnString 1 1 2 minutes
LambdaForEachMap 3 3 45 minutes
BracketsToControl 153 53 5 hours, 6 minutes
RemoveExplicitCallToSuper 11 11 11 minutes
MultiCatch 8 3 40 minutes
StandardLogger 30 18 5 hours, 0 minutes
EnhancedForLoopToStreamForEach 26 16 6 hours, 30 minutes
FieldRenaming 23 3 5 hours, 45 minutes
EnhancedForLoopToStreamFindFirst 1 1 2 minutes
StatementLambdaToExpression 27 15 2 hours, 15 minutes
FunctionalInterface 29 7 2 hours, 25 minutes
RearrangeClassMembers 44 42 3 hours, 40 minutes
EnumsWithoutEquals 12 4 24 minutes
OverrideAnnotation 2 2 10 minutes
CodeFormatter 211 211 3 hours, 31 minutes
UseStringBuilderAppend 108 54 3 hours, 36 minutes
LambdaToMethodReference 5 5 10 minutes
StringBufferToBuilder 1 1 2 minutes
EnhancedForLoopToStreamAnyMatch 2 2 4 minutes
DiamondOperator 7 6 7 minutes
PrimitiveBoxedForString 4 2 20 minutes
IndexOfToContains 2 1 4 minutes
PrimitiveObjectUseEquals 4 1 8 minutes
LambdaForEachIfWrapperToFilter 2 2 10 minutes


jSparrow results for openmrs-core

Metrics for openmrs-core:
Total Java file* count 728
Number of files changed 726
Total number of issues fixed 4477
jSparrow execution time 20 minutes, 51 seconds
Total time saved 312 hours, 59 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on openmrs-core.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 117 82 9 hours, 45 minutes
LambdaForEachCollect 18 14 4 hours, 30 minutes
UseIsEmptyOnCollections 18 11 36 minutes
StringLiteralEqualityCheck 1 1 10 minutes
PutIfAbsent 5 3 10 minutes
InefficientConstructor 11 2 55 minutes
LambdaForEachMap 24 13 6 hours, 0 minutes
MultiVariableDeclarationLine 1 1 2 minutes
FlatMapInsteadOfNestedLoops 1 1 15 minutes
BracketsToControl 3 2 6 minutes
RemoveUnnecessaryThrows 1650 152 55 hours, 0 minutes
RemoveExplicitCallToSuper 19 19 19 minutes
StringUtils 375 75 62 hours, 30 minutes
TryWithResource 6 5 1 hour, 30 minutes
StringConcatToPlus 2 2 10 minutes
StandardLogger 159 69 26 hours, 30 minutes
EnhancedForLoopToStreamForEach 299 102 74 hours, 45 minutes
FieldRenaming 24 4 6 hours, 0 minutes
EnhancedForLoopToStreamFindFirst 25 15 50 minutes
StatementLambdaToExpression 185 88 15 hours, 25 minutes
ArithmethicAssignment 1 1 2 minutes
RearrangeClassMembers 81 76 6 hours, 45 minutes
EnumsWithoutEquals 10 6 20 minutes
OverrideAnnotation 3 3 15 minutes
CodeFormatter 726 726 12 hours, 6 minutes
UseStringBuilderAppend 502 153 16 hours, 44 minutes
ReImplementingInterface 38 37 1 hour, 16 minutes
LambdaToMethodReference 58 37 1 hour, 56 minutes
EnhancedForLoopToStreamAnyMatch 14 11 28 minutes
DiamondOperator 10 7 10 minutes
PrimitiveBoxedForString 6 5 30 minutes
PrimitiveObjectUseEquals 2 2 4 minutes
LambdaForEachIfWrapperToFilter 83 46 6 hours, 55 minutes


jSparrow results for orson-charts

Metrics for orson-charts:
Total Java file* count 251
Number of files changed 245
Total number of issues fixed 552
jSparrow execution time 5 minutes, 23 seconds
Total time saved 20 hours, 48 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on orson-charts.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 46 23 3 hours, 50 minutes
FieldRenaming 12 3 3 hours, 0 minutes
ArithmethicAssignment 32 12 1 hour, 4 minutes
InefficientConstructor 19 2 1 hour, 35 minutes
ForToForEach 3 2 15 minutes
MultiVariableDeclarationLine 16 8 32 minutes
RearrangeClassMembers 11 11 55 minutes
EnumsWithoutEquals 76 18 2 hours, 32 minutes
OverrideAnnotation 2 2 10 minutes
BracketsToControl 8 1 16 minutes
CodeFormatter 245 245 4 hours, 5 minutes
RemoveUnnecessaryThrows 2 1 4 minutes
UseStringBuilderAppend 45 19 1 hour, 30 minutes
ReImplementingInterface 25 23 50 minutes
RemoveExplicitCallToSuper 10 10 10 minutes


jSparrow results for spring-cloud-config

Metrics for spring-cloud-config:
Total Java file* count 130
Number of files changed 105
Total number of issues fixed 305
jSparrow execution time 8 minutes, 20 seconds
Total time saved 20 hours, 48 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on spring-cloud-config.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 13 8 2 hours, 10 minutes
GuardCondition 17 13 1 hour, 25 minutes
EnhancedForLoopToStreamForEach 30 23 7 hours, 30 minutes
FieldRenaming 2 1 30 minutes
EnhancedForLoopToStreamFindFirst 1 1 2 minutes
StatementLambdaToExpression 14 12 1 hour, 10 minutes
StringLiteralEqualityCheck 6 4 1 hour, 0 minutes
PutIfAbsent 1 1 2 minutes
LambdaForEachMap 2 2 30 minutes
ForToForEach 1 1 5 minutes
ImmutableStaticFinalCollections 1 1 10 minutes
RearrangeClassMembers 11 11 55 minutes
EnumsWithoutEquals 5 2 10 minutes
OverrideAnnotation 5 2 25 minutes
BracketsToControl 8 3 16 minutes
CodeFormatter 104 104 1 hour, 44 minutes
UseStringBuilderAppend 52 24 1 hour, 44 minutes
RemoveUnnecessaryThrows 6 6 12 minutes
LambdaToMethodReference 2 2 4 minutes
ReImplementingInterface 3 2 6 minutes
RemoveExplicitCallToSuper 4 4 4 minutes
EnhancedForLoopToStreamAnyMatch 1 1 2 minutes
DiamondOperator 12 8 12 minutes
LambdaForEachIfWrapperToFilter 4 4 20 minutes


jSparrow results for ratel

Metrics for ratel:
Total Java file* count 92
Number of files changed 90
Total number of issues fixed 347
jSparrow execution time 4 minutes, 8 seconds
Total time saved 35 hours, 26 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on ratel.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 28 9 2 hours, 20 minutes
EnhancedForLoopToStreamForEach 20 10 5 hours, 0 minutes
FieldRenaming 66 2 16 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 2 2 4 minutes
StatementLambdaToExpression 10 5 50 minutes
StringLiteralEqualityCheck 15 7 2 hours, 30 minutes
ArithmethicAssignment 1 1 2 minutes
FunctionalInterface 3 3 15 minutes
LambdaForEachMap 2 2 30 minutes
ForToForEach 8 2 40 minutes
RearrangeClassMembers 9 5 45 minutes
OverrideAnnotation 25 3 2 hours, 5 minutes
CodeFormatter 90 90 1 hour, 30 minutes
BracketsToControl 19 5 38 minutes
UseStringBuilderAppend 34 23 1 hour, 8 minutes
LambdaToMethodReference 4 2 8 minutes
RemoveExplicitCallToSuper 1 1 1 minute
DiamondOperator 5 3 5 minutes
LambdaForEachIfWrapperToFilter 5 5 25 minutes


jSparrow results for jfreechart-fse

Metrics for jfreechart-fse:
Total Java file* count 732
Number of files changed 690
Total number of issues fixed 2736
jSparrow execution time 9 minutes, 26 seconds
Total time saved 150 hours, 7 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on jfreechart-fse.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 241 117 20 hours, 5 minutes
LambdaForEachCollect 4 2 1 hour, 0 minutes
StringLiteralEqualityCheck 32 13 5 hours, 20 minutes
InefficientConstructor 56 24 4 hours, 40 minutes
LambdaForEachMap 14 9 3 hours, 30 minutes
ForToForEach 2 2 10 minutes
MultiVariableDeclarationLine 44 26 1 hour, 28 minutes
BracketsToControl 3 1 6 minutes
RemoveUnnecessaryThrows 2 1 4 minutes
RemoveExplicitCallToSuper 85 85 1 hour, 25 minutes
MultiCatch 11 7 55 minutes
EnhancedForLoopToStreamForEach 165 47 41 hours, 15 minutes
FieldRenaming 24 4 6 hours, 0 minutes
EnhancedForLoopToStreamFindFirst 14 7 28 minutes
StatementLambdaToExpression 113 30 9 hours, 25 minutes
ArithmethicAssignment 138 47 4 hours, 36 minutes
FunctionalInterface 2 2 10 minutes
RearrangeClassMembers 49 49 4 hours, 5 minutes
EnumsWithoutEquals 137 39 4 hours, 34 minutes
OverrideAnnotation 39 25 3 hours, 15 minutes
CodeFormatter 690 690 11 hours, 30 minutes
UseStringBuilderAppend 90 58 3 hours, 0 minutes
ReImplementingInterface 305 162 10 hours, 10 minutes
LambdaToMethodReference 47 16 1 hour, 34 minutes
DiamondOperator 365 115 6 hours, 5 minutes
IndexOfToContains 1 1 2 minutes
LambdaForEachIfWrapperToFilter 63 11 5 hours, 15 minutes


jSparrow results for egeria

Metrics for egeria:
Total Java file* count 1244
Number of files changed 336
Total number of issues fixed 725
jSparrow execution time 6 minutes, 47 seconds
Total time saved 32 hours, 42 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on egeria.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 9 5 45 minutes
EnhancedForLoopToStreamForEach 10 8 2 hours, 30 minutes
LambdaForEachCollect 1 1 15 minutes
StatementLambdaToExpression 6 6 30 minutes
StringLiteralEqualityCheck 24 6 4 hours, 0 minutes
ForToForEach 12 1 1 hour, 0 minutes
RearrangeClassMembers 27 27 2 hours, 15 minutes
OverrideAnnotation 116 26 9 hours, 40 minutes
CodeFormatter 336 336 5 hours, 36 minutes
BracketsToControl 6 3 12 minutes
UseStringBuilderAppend 153 102 5 hours, 6 minutes
RemoveExplicitCallToSuper 15 13 15 minutes
MultiCatch 1 1 5 minutes
DiamondOperator 3 1 3 minutes
PrimitiveBoxedForString 1 1 5 minutes
LambdaForEachIfWrapperToFilter 5 5 25 minutes


jSparrow results for primefaces

Metrics for primefaces:
Total Java file* count 1049
Number of files changed 1036
Total number of issues fixed 2757
jSparrow execution time 12 minutes, 2 seconds
Total time saved 159 hours, 41 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on primefaces.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 57 18 9 hours, 30 minutes
GuardCondition 171 121 14 hours, 15 minutes
FieldRenaming 53 1 13 hours, 15 minutes
UseIsEmptyOnCollections 2 2 4 minutes
StringLiteralEqualityCheck 332 103 55 hours, 20 minutes
InefficientConstructor 11 3 55 minutes
ForToForEach 73 37 6 hours, 5 minutes
RearrangeClassMembers 175 175 14 hours, 35 minutes
EnumsWithoutEquals 11 8 22 minutes
BracketsToControl 22 8 44 minutes
CodeFormatter 1036 1036 17 hours, 16 minutes
RemoveUnnecessaryThrows 153 59 5 hours, 6 minutes
UseStringBuilderAppend 608 209 20 hours, 16 minutes
ReImplementingInterface 3 3 6 minutes
StringBufferToBuilder 1 1 2 minutes
RemoveExplicitCallToSuper 13 13 13 minutes
WhileToForEach 2 2 10 minutes
TryWithResource 1 1 15 minutes
MultiCatch 3 3 15 minutes
DiamondOperator 21 16 21 minutes
PrimitiveBoxedForString 6 1 30 minutes
IndexOfToContains 3 2 6 minutes


jSparrow results for BroadleafCommerce

Metrics for BroadleafCommerce:
Total Java file* count 2652
Number of files changed 2648
Total number of issues fixed 8449
jSparrow execution time 26 minutes, 23 seconds
Total time saved 487 hours, 27 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on BroadleafCommerce.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 267 202 22 hours, 15 minutes
UseIsEmptyOnCollections 12 10 24 minutes
StringLiteralEqualityCheck 120 44 20 hours, 0 minutes
RemoveToStringOnString 4 3 8 minutes
InefficientConstructor 25 15 2 hours, 5 minutes
ForToForEach 17 10 1 hour, 25 minutes
MultiVariableDeclarationLine 5 4 10 minutes
RemoveEmptyStatement 3 2 3 minutes
BracketsToControl 1127 178 37 hours, 34 minutes
RemoveUnnecessaryThrows 177 110 5 hours, 54 minutes
RemoveExplicitCallToSuper 56 56 56 minutes
StringUtils 719 183 119 hours, 50 minutes
WhileToForEach 4 4 20 minutes
MultiCatch 38 29 3 hours, 10 minutes
StandardLogger 238 131 39 hours, 40 minutes
FieldRenaming 271 29 67 hours, 45 minutes
ArithmethicAssignment 18 6 36 minutes
RemoveNewStringConstructor 7 5 35 minutes
ImmutableStaticFinalCollections 2 2 20 minutes
RearrangeClassMembers 217 215 18 hours, 5 minutes
EnumsWithoutEquals 111 46 3 hours, 42 minutes
OverrideAnnotation 690 258 57 hours, 30 minutes
CodeFormatter 2648 2648 44 hours, 8 minutes
UseStringBuilderAppend 723 282 24 hours, 6 minutes
ReImplementingInterface 8 8 16 minutes
StringBufferToBuilder 20 17 40 minutes
DiamondOperator 906 412 15 hours, 6 minutes
PrimitiveBoxedForString 4 3 20 minutes
IndexOfToContains 5 4 10 minutes
PrimitiveObjectUseEquals 7 4 14 minutes


jSparrow results for arthas

Metrics for arthas:
Total Java file* count 235
Number of files changed 235
Total number of issues fixed 841
jSparrow execution time 8 minutes, 16 seconds
Total time saved 87 hours, 54 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on arthas.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 30 16 2 hours, 30 minutes
StandardLogger 60 28 10 hours, 0 minutes
FieldRenaming 213 11 53 hours, 15 minutes
UseIsEmptyOnCollections 1 1 2 minutes
StringLiteralEqualityCheck 23 6 3 hours, 50 minutes
InefficientConstructor 2 1 10 minutes
MultiVariableDeclarationLine 12 9 24 minutes
RearrangeClassMembers 27 27 2 hours, 15 minutes
EnumsWithoutEquals 3 2 6 minutes
OverrideAnnotation 28 14 2 hours, 20 minutes
CodeFormatter 235 235 3 hours, 55 minutes
BracketsToControl 13 4 26 minutes
UseStringBuilderAppend 126 55 4 hours, 12 minutes
RemoveUnnecessaryThrows 18 7 36 minutes
StringBufferToBuilder 3 2 6 minutes
RemoveExplicitCallToSuper 2 2 2 minutes
PrimitiveBoxedForString 40 9 3 hours, 20 minutes
StringConcatToPlus 5 1 25 minutes


jSparrow results for moshi

Metrics for moshi:
Total Java file* count 55
Number of files changed 51
Total number of issues fixed 278
jSparrow execution time 9 minutes, 31 seconds
Total time saved 10 hours, 27 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on moshi.
Rule ID Issues Fixed Files Changed Time saved
BracketsToControl 107 19 3 hours, 34 minutes
CodeFormatter 51 51 51 minutes
GuardCondition 8 7 40 minutes
UseStringBuilderAppend 85 28 2 hours, 50 minutes
RemoveUnnecessaryThrows 1 1 2 minutes
StringLiteralEqualityCheck 4 2 40 minutes
RearrangeClassMembers 14 13 1 hour, 10 minutes
OverrideAnnotation 8 1 40 minutes


jSparrow results for platform

Metrics for platform:
Total Java file* count 382
Number of files changed 255
Total number of issues fixed 313
jSparrow execution time 8 minutes, 37 seconds
Total time saved 11 hours, 0 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on platform.
Rule ID Issues Fixed Files Changed Time saved
CodeFormatter 255 255 4 hours, 15 minutes
GuardCondition 3 3 15 minutes
StandardLogger 9 5 1 hour, 30 minutes
EnhancedForLoopToStreamForEach 1 1 15 minutes
FieldRenaming 4 1 1 hour, 0 minutes
RemoveUnnecessaryThrows 1 1 2 minutes
UseStringBuilderAppend 9 6 18 minutes
StatementLambdaToExpression 1 1 5 minutes
StringUtils 10 8 1 hour, 40 minutes
RearrangeClassMembers 12 12 1 hour, 0 minutes
OverrideAnnotation 8 4 40 minutes


jSparrow results for metatron-discovery

Metrics for metatron-discovery:
Total Java file* count 1224
Number of files changed 254
Total number of issues fixed 386
jSparrow execution time 23 minutes, 13 seconds
Total time saved 10 hours, 39 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on metatron-discovery.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 4 4 1 hour, 0 minutes
FieldRenaming 1 1 15 minutes
StringLiteralEqualityCheck 1 1 10 minutes
FunctionalInterface 1 1 5 minutes
RearrangeClassMembers 8 8 40 minutes
OverrideAnnotation 10 6 50 minutes
BracketsToControl 28 11 56 minutes
CodeFormatter 254 254 4 hours, 14 minutes
UseStringBuilderAppend 59 42 1 hour, 58 minutes
ReImplementingInterface 5 5 10 minutes
StringBufferToBuilder 6 3 12 minutes
RemoveExplicitCallToSuper 6 5 6 minutes
DiamondOperator 3 3 3 minutes


jSparrow results for brave

Metrics for brave:
Total Java file* count 239
Number of files changed 234
Total number of issues fixed 958
jSparrow execution time 14 minutes, 8 seconds
Total time saved 39 hours, 42 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on brave.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 12 9 1 hour, 0 minutes
StandardLogger 24 17 4 hours, 0 minutes
EnhancedForLoopToStreamForEach 5 5 1 hour, 15 minutes
EnhancedForLoopToStreamFindFirst 1 1 2 minutes
StatementLambdaToExpression 3 3 15 minutes
StringLiteralEqualityCheck 4 3 40 minutes
FunctionalInterface 1 1 5 minutes
MultiVariableDeclarationLine 39 28 1 hour, 18 minutes
RearrangeClassMembers 107 98 8 hours, 55 minutes
EnumsWithoutEquals 1 1 2 minutes
OverrideAnnotation 12 2 1 hour, 0 minutes
BracketsToControl 466 124 15 hours, 32 minutes
CodeFormatter 234 234 3 hours, 54 minutes
UseStringBuilderAppend 42 40 1 hour, 24 minutes
RemoveUnnecessaryThrows 3 2 6 minutes
LambdaToMethodReference 2 2 4 minutes
MultiCatch 2 2 10 minutes


jSparrow results for Amy

Metrics for Amy:
Total Java file* count 411
Number of files changed 353
Total number of issues fixed 1027
jSparrow execution time 8 minutes, 15 seconds
Total time saved 68 hours, 14 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on Amy.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 63 36 15 hours, 45 minutes
GuardCondition 62 36 5 hours, 10 minutes
StandardLogger 19 15 3 hours, 10 minutes
EnhancedForLoopToStreamFindFirst 3 3 6 minutes
StatementLambdaToExpression 37 29 3 hours, 5 minutes
StringLiteralEqualityCheck 36 13 6 hours, 0 minutes
LambdaForEachMap 5 4 1 hour, 15 minutes
ForToForEach 1 1 5 minutes
RearrangeClassMembers 36 36 3 hours, 0 minutes
EnumsWithoutEquals 8 5 16 minutes
OverrideAnnotation 33 6 2 hours, 45 minutes
BracketsToControl 148 59 4 hours, 56 minutes
CodeFormatter 343 343 5 hours, 43 minutes
UseStringBuilderAppend 133 58 4 hours, 26 minutes
LambdaToMethodReference 14 10 28 minutes
RemoveExplicitCallToSuper 1 1 1 minute
StringUtils 59 29 9 hours, 50 minutes
EnhancedForLoopToStreamAnyMatch 1 1 2 minutes
WhileToForEach 1 1 5 minutes
DiamondOperator 1 1 1 minute
TryWithResource 1 1 15 minutes
StringConcatToPlus 16 5 1 hour, 20 minutes
LambdaForEachIfWrapperToFilter 6 6 30 minutes


jSparrow results for spring-cloud-sleuth

Metrics for spring-cloud-sleuth:
Total Java file* count 156
Number of files changed 123
Total number of issues fixed 263
jSparrow execution time 11 minutes, 14 seconds
Total time saved 11 hours, 31 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on spring-cloud-sleuth.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 9 7 1 hour, 30 minutes
GuardCondition 10 10 50 minutes
EnhancedForLoopToStreamForEach 8 6 2 hours, 0 minutes
StatementLambdaToExpression 9 8 45 minutes
FunctionalInterface 6 6 30 minutes
MultiVariableDeclarationLine 1 1 2 minutes
RearrangeClassMembers 9 8 45 minutes
OverrideAnnotation 1 1 5 minutes
BracketsToControl 4 3 8 minutes
CodeFormatter 118 118 1 hour, 58 minutes
RemoveUnnecessaryThrows 28 16 56 minutes
UseStringBuilderAppend 48 31 1 hour, 36 minutes
LambdaToMethodReference 4 3 8 minutes
EnhancedForLoopToStreamAnyMatch 2 2 4 minutes
DiamondOperator 4 4 4 minutes
LambdaForEachIfWrapperToFilter 2 2 10 minutes


jSparrow results for flowable-engine

Metrics for flowable-engine:
Total Java file* count 2755
Number of files changed 2736
Total number of issues fixed 6047
jSparrow execution time 18 minutes, 47 seconds
Total time saved 431 hours, 35 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on flowable-engine.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 436 224 36 hours, 20 minutes
LambdaForEachCollect 8 7 2 hours, 0 minutes
UseIsEmptyOnCollections 17 10 34 minutes
StringLiteralEqualityCheck 61 20 10 hours, 10 minutes
RemoveToStringOnString 2 1 4 minutes
PutIfAbsent 20 12 40 minutes
LambdaForEachMap 40 29 10 hours, 0 minutes
InefficientConstructor 13 8 1 hour, 5 minutes
ForToForEach 10 9 50 minutes
MultiVariableDeclarationLine 2 2 4 minutes
FlatMapInsteadOfNestedLoops 1 1 15 minutes
BracketsToControl 95 54 3 hours, 10 minutes
RemoveUnnecessaryThrows 29 22 58 minutes
RemoveExplicitCallToSuper 15 15 15 minutes
WhileToForEach 10 8 50 minutes
MultiCatch 9 5 45 minutes
OptionalIfPresent 5 3 10 minutes
StandardLogger 112 50 18 hours, 40 minutes
EnhancedForLoopToStreamForEach 814 329 203 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 22 14 44 minutes
FieldRenaming 5 1 1 hour, 15 minutes
StatementLambdaToExpression 514 268 42 hours, 50 minutes
FunctionalInterface 84 41 7 hours, 0 minutes
ImmutableStaticFinalCollections 2 2 20 minutes
RemoveNewStringConstructor 1 1 5 minutes
RearrangeClassMembers 56 56 4 hours, 40 minutes
EnumsWithoutEquals 6 4 12 minutes
OverrideAnnotation 29 24 2 hours, 25 minutes
CodeFormatter 2735 2735 45 hours, 35 minutes
UseStringBuilderAppend 600 334 20 hours, 0 minutes
LambdaToMethodReference 108 79 3 hours, 36 minutes
ReImplementingInterface 12 12 24 minutes
EnhancedForLoopToStreamAnyMatch 8 5 16 minutes
DiamondOperator 15 3 15 minutes
IndexOfToContains 16 2 32 minutes
PrimitiveObjectUseEquals 3 3 6 minutes
LambdaForEachIfWrapperToFilter 132 93 11 hours, 0 minutes


jSparrow results for takes

Metrics for takes:
Total Java file* count 260
Number of files changed 60
Total number of issues fixed 76
jSparrow execution time 7 minutes, 25 seconds
Total time saved 1 hour, 32 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on takes.
Rule ID Issues Fixed Files Changed Time saved
CodeFormatter 60 60 1 hour, 0 minutes
RemoveExplicitCallToSuper 4 4 4 minutes
StatementLambdaToExpression 1 1 5 minutes
DiamondOperator 8 5 8 minutes
FunctionalInterface 2 2 10 minutes
RearrangeClassMembers 1 1 5 minutes


jSparrow results for morpheus-core

Metrics for morpheus-core:
Total Java file* count 293
Number of files changed 282
Total number of issues fixed 1400
jSparrow execution time 9 minutes, 4 seconds
Total time saved 114 hours, 58 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on morpheus-core.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 11 8 55 minutes
UseIsEmptyOnCollections 4 4 8 minutes
StringLiteralEqualityCheck 20 4 3 hours, 20 minutes
InefficientConstructor 9 3 45 minutes
ForToForEach 1 1 5 minutes
MultiVariableDeclarationLine 20 11 40 minutes
RemoveEmptyStatement 1 1 1 minute
BracketsToControl 122 49 4 hours, 4 minutes
RemoveUnnecessaryThrows 110 22 3 hours, 40 minutes
RemoveExplicitCallToSuper 30 30 30 minutes
EnhancedForLoopToStreamForEach 3 2 45 minutes
FieldRenaming 237 7 59 hours, 15 minutes
EnhancedForLoopToStreamFindFirst 2 2 4 minutes
StatementLambdaToExpression 13 7 1 hour, 5 minutes
ArithmethicAssignment 22 2 44 minutes
FunctionalInterface 1 1 5 minutes
ImmutableStaticFinalCollections 1 1 10 minutes
RearrangeClassMembers 27 26 2 hours, 15 minutes
EnumsWithoutEquals 1 1 2 minutes
OverrideAnnotation 312 70 26 hours, 0 minutes
CodeFormatter 282 282 4 hours, 42 minutes
UseStringBuilderAppend 167 40 5 hours, 34 minutes
LambdaToMethodReference 1 1 2 minutes
DiamondOperator 2 1 2 minutes
LambdaForEachIfWrapperToFilter 1 1 5 minutes


jSparrow results for symphony

Metrics for symphony:
Total Java file* count 223
Number of files changed 223
Total number of issues fixed 1047
jSparrow execution time 23 minutes, 48 seconds
Total time saved 74 hours, 47 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on symphony.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 7 7 35 minutes
LambdaForEachCollect 1 1 15 minutes
UseIsEmptyOnCollections 1 1 2 minutes
StringLiteralEqualityCheck 2 2 20 minutes
LambdaForEachMap 4 4 1 hour, 0 minutes
ForToForEach 12 8 1 hour, 0 minutes
FlatMapInsteadOfNestedLoops 1 1 15 minutes
BracketsToControl 2 1 4 minutes
RemoveUnnecessaryThrows 4 3 8 minutes
WhileToForEach 3 1 15 minutes
StandardLogger 6 3 1 hour, 0 minutes
EnhancedForLoopToStreamForEach 45 27 11 hours, 15 minutes
FieldRenaming 124 7 31 hours, 0 minutes
EnhancedForLoopToStreamFindFirst 2 2 4 minutes
StatementLambdaToExpression 34 22 2 hours, 50 minutes
ArithmethicAssignment 1 1 2 minutes
RearrangeClassMembers 25 25 2 hours, 5 minutes
EnumsWithoutEquals 2 1 4 minutes
OverrideAnnotation 1 1 5 minutes
CodeFormatter 223 223 3 hours, 43 minutes
StringFormatLineSeparator 1 1 1 minute
UseStringBuilderAppend 503 104 16 hours, 46 minutes
StringBufferToBuilder 4 2 8 minutes
LambdaToMethodReference 13 8 26 minutes
EnhancedForLoopToStreamAnyMatch 8 6 16 minutes
DiamondOperator 4 3 4 minutes
PrimitiveBoxedForString 4 1 20 minutes
PrimitiveObjectUseEquals 2 1 4 minutes
LambdaForEachIfWrapperToFilter 8 7 40 minutes


jSparrow results for incubator-dubbo

Metrics for incubator-dubbo:
Total Java file* count 769
Number of files changed 738
Total number of issues fixed 3003
jSparrow execution time 21 minutes, 18 seconds
Total time saved 164 hours, 58 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on incubator-dubbo.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 62 46 5 hours, 10 minutes
LambdaForEachCollect 16 9 4 hours, 0 minutes
UseIsEmptyOnCollections 179 54 5 hours, 58 minutes
StringLiteralEqualityCheck 12 8 2 hours, 0 minutes
RemoveToStringOnString 1 1 2 minutes
PutIfAbsent 2 2 4 minutes
LambdaForEachMap 14 10 3 hours, 30 minutes
InefficientConstructor 11 4 55 minutes
ForToForEach 24 10 2 hours, 0 minutes
MultiVariableDeclarationLine 47 19 1 hour, 34 minutes
FlatMapInsteadOfNestedLoops 6 3 1 hour, 30 minutes
RemoveUnnecessaryThrows 182 108 6 hours, 4 minutes
RemoveExplicitCallToSuper 12 11 12 minutes
WhileToForEach 1 1 5 minutes
StringUtils 4 1 40 minutes
MultiCatch 20 9 1 hour, 40 minutes
EnhancedForLoopToStreamForEach 173 69 43 hours, 15 minutes
StandardLogger 47 16 7 hours, 50 minutes
FieldRenaming 62 13 15 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 6 5 12 minutes
StatementLambdaToExpression 94 48 7 hours, 50 minutes
ArithmethicAssignment 6 3 12 minutes
FunctionalInterface 71 33 5 hours, 55 minutes
ImmutableStaticFinalCollections 3 2 30 minutes
RearrangeClassMembers 23 22 1 hour, 55 minutes
EnumsWithoutEquals 7 2 14 minutes
CodeFormatter 738 738 12 hours, 18 minutes
UseStringBuilderAppend 634 173 21 hours, 8 minutes
StringFormatLineSeparator 9 1 9 minutes
LambdaToMethodReference 52 32 1 hour, 44 minutes
ReImplementingInterface 5 5 10 minutes
StringBufferToBuilder 3 3 6 minutes
EnhancedForLoopToStreamAnyMatch 7 5 14 minutes
DiamondOperator 432 165 7 hours, 12 minutes
LambdaForEachIfWrapperToFilter 38 20 3 hours, 10 minutes


jSparrow results for HealthPlus

Metrics for HealthPlus:
Total Java file* count 55
Number of files changed 10
Total number of issues fixed 411
jSparrow execution time 3 minutes, 44 seconds
Total time saved 14 hours, 22 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on HealthPlus.
Rule ID Issues Fixed Files Changed Time saved
BracketsToControl 45 9 1 hour, 30 minutes
CodeFormatter 10 10 10 minutes
UseStringBuilderAppend 272 8 9 hours, 4 minutes
StringLiteralEqualityCheck 10 4 1 hour, 40 minutes
ArithmethicAssignment 1 1 2 minutes
TryWithResource 2 1 30 minutes
DiamondOperator 62 8 1 hour, 2 minutes
MultiVariableDeclarationLine 2 1 4 minutes
RearrangeClassMembers 2 2 10 minutes
PrimitiveObjectUseEquals 5 2 10 minutes


jSparrow results for presto

Metrics for presto:
Total Java file* count 3578
Number of files changed 2716
Total number of issues fixed 6164
jSparrow execution time 34 minutes, 27 seconds
Total time saved 454 hours, 27 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on presto.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 193 144 16 hours, 5 minutes
UseIsEmptyOnCollections 1 1 2 minutes
StringLiteralEqualityCheck 37 20 6 hours, 10 minutes
PutIfAbsent 1 1 2 minutes
LambdaForEachMap 54 40 13 hours, 30 minutes
ForToForEach 12 9 1 hour, 0 minutes
RemoveUnnecessaryThrows 29 17 58 minutes
StringUtils 299 106 49 hours, 50 minutes
OptionalIfPresent 120 39 4 hours, 0 minutes
StringConcatToPlus 1 1 5 minutes
StandardLogger 179 73 29 hours, 50 minutes
EnhancedForLoopToStreamForEach 734 298 183 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 6 5 12 minutes
StatementLambdaToExpression 468 231 39 hours, 0 minutes
ArithmethicAssignment 8 3 16 minutes
FunctionalInterface 7 6 35 minutes
RearrangeClassMembers 329 317 27 hours, 25 minutes
EnumsWithoutEquals 18 12 36 minutes
OverrideAnnotation 42 30 3 hours, 30 minutes
CodeFormatter 2716 2716 45 hours, 16 minutes
UseStringBuilderAppend 745 154 24 hours, 50 minutes
LambdaToMethodReference 115 67 3 hours, 50 minutes
ReImplementingInterface 1 1 2 minutes
EnhancedForLoopToStreamAnyMatch 4 4 8 minutes
LambdaForEachIfWrapperToFilter 45 33 3 hours, 45 minutes


jSparrow results for stringtemplate4

Metrics for stringtemplate4:
Total Java file* count 59
Number of files changed 50
Total number of issues fixed 218
jSparrow execution time 3 minutes, 32 seconds
Total time saved 8 hours, 31 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on stringtemplate4.
Rule ID Issues Fixed Files Changed Time saved
BracketsToControl 90 21 3 hours, 0 minutes
CodeFormatter 49 49 49 minutes
GuardCondition 2 2 10 minutes
RemoveUnnecessaryThrows 5 5 10 minutes
StringFormatLineSeparator 3 1 3 minutes
UseStringBuilderAppend 41 16 1 hour, 22 minutes
RemoveExplicitCallToSuper 2 2 2 minutes
StringLiteralEqualityCheck 9 2 1 hour, 30 minutes
RearrangeClassMembers 5 5 25 minutes
OverrideAnnotation 12 1 1 hour, 0 minutes


jSparrow results for killbill

Metrics for killbill:
Total Java file* count 981
Number of files changed 842
Total number of issues fixed 2494
jSparrow execution time 20 minutes, 31 seconds
Total time saved 137 hours, 2 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on killbill.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 54 32 4 hours, 30 minutes
LambdaForEachCollect 3 3 45 minutes
UseIsEmptyOnCollections 5 4 10 minutes
StringLiteralEqualityCheck 1 1 10 minutes
PutIfAbsent 5 4 10 minutes
LambdaForEachMap 10 9 2 hours, 30 minutes
InefficientConstructor 3 3 15 minutes
RemoveEmptyStatement 2 2 2 minutes
BracketsToControl 5 1 10 minutes
RemoveUnnecessaryThrows 14 7 28 minutes
RemoveExplicitCallToSuper 27 27 27 minutes
WhileToForEach 4 3 20 minutes
MultiCatch 39 30 3 hours, 15 minutes
TryWithResource 1 1 15 minutes
StringConcatToPlus 2 1 10 minutes
EnhancedForLoopToStreamForEach 135 63 33 hours, 45 minutes
StandardLogger 61 41 10 hours, 10 minutes
EnhancedForLoopToStreamFindFirst 7 6 14 minutes
FieldRenaming 9 4 2 hours, 15 minutes
StatementLambdaToExpression 152 64 12 hours, 40 minutes
ArithmethicAssignment 3 3 6 minutes
FunctionalInterface 274 66 22 hours, 50 minutes
RearrangeClassMembers 54 52 4 hours, 30 minutes
EnumsWithoutEquals 135 41 4 hours, 30 minutes
OverrideAnnotation 59 35 4 hours, 55 minutes
CodeFormatter 842 842 14 hours, 2 minutes
UseStringBuilderAppend 88 53 2 hours, 56 minutes
StringFormatLineSeparator 2 1 2 minutes
LambdaToMethodReference 42 21 1 hour, 24 minutes
ReImplementingInterface 16 15 32 minutes
StringBufferToBuilder 2 2 4 minutes
EnhancedForLoopToStreamAnyMatch 6 4 12 minutes
DiamondOperator 411 131 6 hours, 51 minutes
PrimitiveObjectUseEquals 6 6 12 minutes
LambdaForEachIfWrapperToFilter 15 13 1 hour, 15 minutes


jSparrow results for spring-boot

Metrics for spring-boot:
Total Java file* count 2306
Number of files changed 275
Total number of issues fixed 481
jSparrow execution time 10 minutes, 17 seconds
Total time saved 23 hours, 23 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on spring-boot.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 36 17 9 hours, 0 minutes
GuardCondition 18 15 1 hour, 30 minutes
EnhancedForLoopToStreamFindFirst 2 2 4 minutes
StatementLambdaToExpression 23 13 1 hour, 55 minutes
StringLiteralEqualityCheck 12 5 2 hours, 0 minutes
PutIfAbsent 3 2 6 minutes
ArithmethicAssignment 2 1 4 minutes
ImmutableStaticFinalCollections 1 1 10 minutes
RearrangeClassMembers 3 3 15 minutes
CodeFormatter 275 275 4 hours, 35 minutes
RemoveUnnecessaryThrows 8 5 16 minutes
UseStringBuilderAppend 76 37 2 hours, 32 minutes
LambdaToMethodReference 13 7 26 minutes
EnhancedForLoopToStreamAnyMatch 4 4 8 minutes
IndexOfToContains 1 1 2 minutes
LambdaForEachIfWrapperToFilter 4 3 20 minutes


jSparrow results for marytts

Metrics for marytts:
Total Java file* count 903
Number of files changed 407
Total number of issues fixed 4317
jSparrow execution time 7 minutes, 59 seconds
Total time saved 242 hours, 36 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on marytts.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 41 26 3 hours, 25 minutes
UseIsEmptyOnCollections 14 4 28 minutes
FieldRenaming 265 17 66 hours, 15 minutes
StringLiteralEqualityCheck 104 33 17 hours, 20 minutes
ArithmethicAssignment 93 8 3 hours, 6 minutes
InefficientConstructor 22 10 1 hour, 50 minutes
ForToForEach 111 67 9 hours, 15 minutes
MultiVariableDeclarationLine 127 53 4 hours, 14 minutes
RearrangeClassMembers 62 61 5 hours, 10 minutes
RemoveEmptyStatement 2 2 2 minutes
OverrideAnnotation 439 161 36 hours, 35 minutes
BracketsToControl 2074 221 69 hours, 8 minutes
CodeFormatter 369 369 6 hours, 9 minutes
RemoveUnnecessaryThrows 35 13 1 hour, 10 minutes
UseStringBuilderAppend 389 136 12 hours, 58 minutes
RemoveExplicitCallToSuper 45 41 45 minutes
WhileToForEach 8 3 40 minutes
TryWithResource 5 5 1 hour, 15 minutes
DiamondOperator 92 37 1 hour, 32 minutes
MultiCatch 12 12 1 hour, 0 minutes
PrimitiveBoxedForString 1 1 5 minutes
IndexOfToContains 3 3 6 minutes
PrimitiveObjectUseEquals 4 3 8 minutes


jSparrow results for iextrading4j

Metrics for iextrading4j:
Total Java file* count 263
Number of files changed 261
Total number of issues fixed 482
jSparrow execution time 5 minutes, 40 seconds
Total time saved 24 hours, 42 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on iextrading4j.
Rule ID Issues Fixed Files Changed Time saved
BracketsToControl 147 70 4 hours, 54 minutes
CodeFormatter 261 261 4 hours, 21 minutes
EnhancedForLoopToStreamForEach 1 1 15 minutes
FieldRenaming 57 6 14 hours, 15 minutes
UseStringBuilderAppend 11 10 22 minutes
StringLiteralEqualityCheck 2 2 20 minutes
RearrangeClassMembers 2 2 10 minutes
OverrideAnnotation 1 1 5 minutes


jSparrow results for tablesaw

Metrics for tablesaw:
Total Java file* count 200
Number of files changed 200
Total number of issues fixed 930
jSparrow execution time 8 minutes, 35 seconds
Total time saved 74 hours, 55 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on tablesaw.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 50 46 8 hours, 20 minutes
GuardCondition 9 5 45 minutes
EnhancedForLoopToStreamForEach 104 32 26 hours, 0 minutes
UseIsEmptyOnCollections 1 1 2 minutes
StatementLambdaToExpression 81 30 6 hours, 45 minutes
ArithmethicAssignment 5 2 10 minutes
FunctionalInterface 5 4 25 minutes
LambdaForEachMap 8 3 2 hours, 0 minutes
ForToForEach 2 2 10 minutes
MultiVariableDeclarationLine 2 2 4 minutes
RearrangeClassMembers 24 22 2 hours, 0 minutes
EnumsWithoutEquals 12 5 24 minutes
OverrideAnnotation 122 46 10 hours, 10 minutes
BracketsToControl 95 17 3 hours, 10 minutes
CodeFormatter 200 200 3 hours, 20 minutes
StringFormatLineSeparator 1 1 1 minute
UseStringBuilderAppend 130 40 4 hours, 20 minutes
RemoveUnnecessaryThrows 1 1 2 minutes
LambdaToMethodReference 43 23 1 hour, 26 minutes
StringUtils 30 10 5 hours, 0 minutes
DiamondOperator 1 1 1 minute
PrimitiveBoxedForString 3 3 15 minutes
LambdaForEachIfWrapperToFilter 1 1 5 minutes


jSparrow results for game-server

Metrics for game-server:
Total Java file* count 381
Number of files changed 378
Total number of issues fixed 6264
jSparrow execution time 13 minutes, 13 seconds
Total time saved 830 hours, 55 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on game-server.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 134 45 11 hours, 10 minutes
UseIsEmptyOnCollections 1 1 2 minutes
PutIfAbsent 3 3 6 minutes
LambdaForEachMap 3 3 45 minutes
ForToForEach 70 21 5 hours, 50 minutes
MultiVariableDeclarationLine 22 9 44 minutes
FlatMapInsteadOfNestedLoops 1 1 15 minutes
BracketsToControl 435 45 14 hours, 30 minutes
RemoveUnnecessaryThrows 2 2 4 minutes
RemoveExplicitCallToSuper 15 13 15 minutes
WhileToForEach 5 4 25 minutes
MultiCatch 5 5 25 minutes
StandardLogger 63 20 10 hours, 30 minutes
EnhancedForLoopToStreamForEach 41 19 10 hours, 15 minutes
FieldRenaming 2165 18 541 hours, 15 minutes
StatementLambdaToExpression 52 31 4 hours, 20 minutes
ArithmethicAssignment 2 2 4 minutes
FunctionalInterface 42 21 3 hours, 30 minutes
RearrangeClassMembers 176 44 14 hours, 40 minutes
OverrideAnnotation 2375 44 197 hours, 55 minutes
CodeFormatter 377 377 6 hours, 17 minutes
UseStringBuilderAppend 118 63 3 hours, 56 minutes
LambdaToMethodReference 33 18 1 hour, 6 minutes
StringBufferToBuilder 3 3 6 minutes
ReImplementingInterface 1 1 2 minutes
DiamondOperator 113 28 1 hour, 53 minutes
PrimitiveBoxedForString 1 1 5 minutes
LambdaForEachIfWrapperToFilter 6 5 30 minutes


jSparrow results for soot

Metrics for soot:
Total Java file* count 2144
Number of files changed 1761
Total number of issues fixed 13733
jSparrow execution time 20 minutes, 24 seconds
Total time saved 1321 hours, 21 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on soot.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 235 162 19 hours, 35 minutes
LambdaForEachCollect 9 8 2 hours, 15 minutes
UseIsEmptyOnCollections 12 9 24 minutes
StringLiteralEqualityCheck 310 77 51 hours, 40 minutes
RemoveToStringOnString 9 4 18 minutes
PutIfAbsent 14 7 28 minutes
InefficientConstructor 219 48 18 hours, 15 minutes
LambdaForEachMap 118 72 29 hours, 30 minutes
ForToForEach 88 42 7 hours, 20 minutes
MultiVariableDeclarationLine 185 85 6 hours, 10 minutes
RemoveEmptyStatement 33 15 33 minutes
FlatMapInsteadOfNestedLoops 4 4 1 hour, 0 minutes
RemoveUnnecessaryThrows 21 13 42 minutes
RemoveExplicitCallToSuper 37 35 37 minutes
WhileToForEach 208 96 17 hours, 20 minutes
TryWithResource 8 7 2 hours, 0 minutes
StringConcatToPlus 7 2 35 minutes
StandardLogger 649 106 108 hours, 10 minutes
EnhancedForLoopToStreamForEach 594 218 148 hours, 30 minutes
FieldRenaming 1614 134 403 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 13 8 26 minutes
StatementLambdaToExpression 296 142 24 hours, 40 minutes
ArithmethicAssignment 9 5 18 minutes
FunctionalInterface 1 1 5 minutes
ImmutableStaticFinalCollections 7 2 1 hour, 10 minutes
RemoveNewStringConstructor 11 6 55 minutes
RearrangeClassMembers 248 246 20 hours, 40 minutes
EnumsWithoutEquals 1 1 2 minutes
OverrideAnnotation 4218 931 351 hours, 30 minutes
CodeFormatter 1761 1761 29 hours, 21 minutes
UseStringBuilderAppend 834 370 27 hours, 48 minutes
ReImplementingInterface 5 5 10 minutes
StringBufferToBuilder 124 107 4 hours, 8 minutes
LambdaToMethodReference 148 83 4 hours, 56 minutes
EnhancedForLoopToStreamAnyMatch 14 12 28 minutes
DiamondOperator 1516 404 25 hours, 16 minutes
PrimitiveBoxedForString 23 13 1 hour, 55 minutes
IndexOfToContains 29 14 58 minutes
PrimitiveObjectUseEquals 14 5 28 minutes
LambdaForEachIfWrapperToFilter 87 53 7 hours, 15 minutes


jSparrow results for JCSprout

Metrics for JCSprout:
Total Java file* count 74
Number of files changed 74
Total number of issues fixed 228
jSparrow execution time 4 minutes, 1 second
Total time saved 21 hours, 31 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on JCSprout.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 79 29 13 hours, 10 minutes
GuardCondition 3 3 15 minutes
EnhancedForLoopToStreamForEach 2 2 30 minutes
FieldRenaming 6 1 1 hour, 30 minutes
StatementLambdaToExpression 5 5 25 minutes
StringLiteralEqualityCheck 6 3 1 hour, 0 minutes
ArithmethicAssignment 1 1 2 minutes
FunctionalInterface 18 5 1 hour, 30 minutes
RemoveNewStringConstructor 1 1 5 minutes
RearrangeClassMembers 6 6 30 minutes
CodeFormatter 74 74 1 hour, 14 minutes
RemoveUnnecessaryThrows 3 2 6 minutes
UseStringBuilderAppend 16 12 32 minutes
LambdaToMethodReference 1 1 2 minutes
StringUtils 2 2 20 minutes
DiamondOperator 1 1 1 minute
PrimitiveBoxedForString 1 1 5 minutes
EnhancedForLoopToStreamSum 1 1 10 minutes
PrimitiveObjectUseEquals 2 1 4 minutes


jSparrow results for lettuce-core

Metrics for lettuce-core:
Total Java file* count 619
Number of files changed 584
Total number of issues fixed 1422
jSparrow execution time 12 minutes, 10 seconds
Total time saved 94 hours, 31 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on lettuce-core.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 76 54 6 hours, 20 minutes
LambdaForEachCollect 3 3 45 minutes
UseIsEmptyOnCollections 5 2 10 minutes
StringLiteralEqualityCheck 46 14 7 hours, 40 minutes
PutIfAbsent 2 2 4 minutes
InefficientConstructor 1 1 5 minutes
LambdaForEachMap 7 6 1 hour, 45 minutes
ForToForEach 2 2 10 minutes
MultiVariableDeclarationLine 2 2 4 minutes
BracketsToControl 59 19 1 hour, 58 minutes
RemoveUnnecessaryThrows 5 4 10 minutes
RemoveExplicitCallToSuper 2 1 2 minutes
StandardLogger 34 22 5 hours, 40 minutes
EnhancedForLoopToStreamForEach 85 51 21 hours, 15 minutes
FieldRenaming 32 6 8 hours, 0 minutes
EnhancedForLoopToStreamFindFirst 9 6 18 minutes
StatementLambdaToExpression 65 45 5 hours, 25 minutes
FunctionalInterface 2 2 10 minutes
ImmutableStaticFinalCollections 2 2 20 minutes
RearrangeClassMembers 52 51 4 hours, 20 minutes
EnumsWithoutEquals 1 1 2 minutes
OverrideAnnotation 180 57 15 hours, 0 minutes
CodeFormatter 584 584 9 hours, 44 minutes
UseStringBuilderAppend 62 28 2 hours, 4 minutes
ReImplementingInterface 5 5 10 minutes
StringBufferToBuilder 5 5 10 minutes
LambdaToMethodReference 24 18 48 minutes
EnhancedForLoopToStreamAnyMatch 2 2 4 minutes
DiamondOperator 58 31 58 minutes
PrimitiveBoxedForString 3 2 15 minutes
LambdaForEachIfWrapperToFilter 7 7 35 minutes


jSparrow results for biojava

Metrics for biojava:
Total Java file* count 1117
Number of files changed 1082
Total number of issues fixed 11865
jSparrow execution time 19 minutes, 10 seconds
Total time saved 1041 hours, 31 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on biojava.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 129 89 10 hours, 45 minutes
LambdaForEachCollect 12 10 3 hours, 0 minutes
UseIsEmptyOnCollections 37 20 1 hour, 14 minutes
StringLiteralEqualityCheck 604 111 100 hours, 40 minutes
PutIfAbsent 9 6 18 minutes
InefficientConstructor 133 19 11 hours, 5 minutes
LambdaForEachMap 47 37 11 hours, 45 minutes
ForToForEach 64 38 5 hours, 20 minutes
MultiVariableDeclarationLine 205 78 6 hours, 50 minutes
RemoveEmptyStatement 11 9 11 minutes
FlatMapInsteadOfNestedLoops 5 5 1 hour, 15 minutes
BracketsToControl 2804 387 93 hours, 28 minutes
RemoveUnnecessaryThrows 82 28 2 hours, 44 minutes
RemoveExplicitCallToSuper 71 69 1 hour, 11 minutes
WhileToForEach 11 6 55 minutes
TryWithResource 4 4 1 hour, 0 minutes
MultiCatch 32 26 2 hours, 40 minutes
StringConcatToPlus 13 3 1 hour, 5 minutes
StandardLogger 982 226 163 hours, 40 minutes
EnhancedForLoopToStreamForEach 563 195 140 hours, 45 minutes
FieldRenaming 1318 44 329 hours, 30 minutes
EnhancedForLoopToStreamFindFirst 28 18 56 minutes
StatementLambdaToExpression 353 150 29 hours, 25 minutes
ArithmethicAssignment 74 30 2 hours, 28 minutes
FunctionalInterface 62 28 5 hours, 10 minutes
ImmutableStaticFinalCollections 4 2 40 minutes
RemoveNewStringConstructor 5 3 25 minutes
RearrangeClassMembers 215 208 17 hours, 55 minutes
EnumsWithoutEquals 53 22 1 hour, 46 minutes
OverrideAnnotation 1 1 5 minutes
CodeFormatter 1075 1075 17 hours, 55 minutes
StringFormatLineSeparator 28 15 28 minutes
UseStringBuilderAppend 1103 349 36 hours, 46 minutes
ReImplementingInterface 4 4 8 minutes
StringBufferToBuilder 60 42 2 hours, 0 minutes
LambdaToMethodReference 126 72 4 hours, 12 minutes
EnhancedForLoopToStreamAnyMatch 18 12 36 minutes
DiamondOperator 1412 381 23 hours, 32 minutes
PrimitiveBoxedForString 22 8 1 hour, 50 minutes
EnhancedForLoopToStreamSum 1 1 10 minutes
StringBuildingLoop 1 1 10 minutes
IndexOfToContains 8 6 16 minutes
PrimitiveObjectUseEquals 21 12 42 minutes
LambdaForEachIfWrapperToFilter 55 30 4 hours, 35 minutes


jSparrow results for orientdb

Metrics for orientdb:
Total Java file* count 2545
Number of files changed 2525
Total number of issues fixed 34917
jSparrow execution time 43 minutes, 14 seconds
Total time saved 2489 hours, 4 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on orientdb.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 542 336 45 hours, 10 minutes
LambdaForEachCollect 11 7 2 hours, 45 minutes
UseIsEmptyOnCollections 100 58 3 hours, 20 minutes
StringLiteralEqualityCheck 533 166 88 hours, 50 minutes
RemoveToStringOnString 10 8 20 minutes
PutIfAbsent 2 2 4 minutes
InefficientConstructor 73 16 6 hours, 5 minutes
LambdaForEachMap 71 47 17 hours, 45 minutes
ForToForEach 47 38 3 hours, 55 minutes
MultiVariableDeclarationLine 13 11 26 minutes
RemoveEmptyStatement 284 10 4 hours, 44 minutes
FlatMapInsteadOfNestedLoops 1 1 15 minutes
BracketsToControl 16047 1106 534 hours, 54 minutes
RemoveUnnecessaryThrows 461 222 15 hours, 22 minutes
RemoveExplicitCallToSuper 34 32 34 minutes
WhileToForEach 4 3 20 minutes
TryWithResource 6 4 1 hour, 30 minutes
MultiCatch 149 30 12 hours, 25 minutes
EnhancedForLoopToStreamForEach 1054 345 263 hours, 30 minutes
FieldRenaming 3687 24 921 hours, 45 minutes
EnhancedForLoopToStreamFindFirst 39 22 1 hour, 18 minutes
StatementLambdaToExpression 695 278 57 hours, 55 minutes
ArithmethicAssignment 12 8 24 minutes
FunctionalInterface 115 56 9 hours, 35 minutes
RemoveNewStringConstructor 3 2 15 minutes
RearrangeClassMembers 237 236 19 hours, 45 minutes
EnumsWithoutEquals 128 28 4 hours, 16 minutes
OverrideAnnotation 3618 732 301 hours, 30 minutes
CodeFormatter 2523 2523 42 hours, 3 minutes
StringFormatLineSeparator 25 9 25 minutes
UseStringBuilderAppend 2171 615 72 hours, 22 minutes
ReImplementingInterface 22 20 44 minutes
StringBufferToBuilder 8 7 16 minutes
LambdaToMethodReference 401 204 13 hours, 22 minutes
EnhancedForLoopToStreamAnyMatch 45 24 1 hour, 30 minutes
DiamondOperator 1580 483 26 hours, 20 minutes
PrimitiveBoxedForString 17 13 1 hour, 25 minutes
IndexOfToContains 7 6 14 minutes
PrimitiveObjectUseEquals 8 6 16 minutes
LambdaForEachIfWrapperToFilter 134 66 11 hours, 10 minutes


jSparrow results for openhab2-addons

Metrics for openhab2-addons:
Total Java file* count 2671
Number of files changed 2660
Total number of issues fixed 8144
jSparrow execution time 41 minutes, 13 seconds
Total time saved 632 hours, 22 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on openhab2-addons.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 641 405 53 hours, 25 minutes
LambdaForEachCollect 5 5 1 hour, 15 minutes
UseIsEmptyOnCollections 28 17 56 minutes
StringLiteralEqualityCheck 533 80 88 hours, 50 minutes
RemoveToStringOnString 22 9 44 minutes
PutIfAbsent 4 4 8 minutes
LambdaForEachMap 38 30 9 hours, 30 minutes
InefficientConstructor 20 9 1 hour, 40 minutes
ForToForEach 20 18 1 hour, 40 minutes
MultiVariableDeclarationLine 26 20 52 minutes
FlatMapInsteadOfNestedLoops 2 2 30 minutes
RemoveEmptyStatement 6 4 6 minutes
BracketsToControl 9 3 18 minutes
RemoveUnnecessaryThrows 128 101 4 hours, 16 minutes
RemoveExplicitCallToSuper 38 35 38 minutes
WhileToForEach 3 3 15 minutes
StringUtils 7 2 1 hour, 10 minutes
MultiCatch 22 19 1 hour, 50 minutes
TryWithResource 4 3 1 hour, 0 minutes
OptionalIfPresent 2 2 4 minutes
StringConcatToPlus 19 4 1 hour, 35 minutes
StandardLogger 618 282 103 hours, 0 minutes
EnhancedForLoopToStreamForEach 441 225 110 hours, 15 minutes
EnhancedForLoopToStreamFindFirst 39 25 1 hour, 18 minutes
FieldRenaming 286 27 71 hours, 30 minutes
StatementLambdaToExpression 386 193 32 hours, 10 minutes
ArithmethicAssignment 7 7 14 minutes
FunctionalInterface 64 36 5 hours, 20 minutes
RemoveNewStringConstructor 11 6 55 minutes
ImmutableStaticFinalCollections 7 7 1 hour, 10 minutes
RearrangeClassMembers 456 453 38 hours, 0 minutes
EnumsWithoutEquals 127 60 4 hours, 14 minutes
OverrideAnnotation 21 9 1 hour, 45 minutes
DateDeprecated 1 1 1 minute
CodeFormatter 2660 2660 44 hours, 20 minutes
UseStringBuilderAppend 942 443 31 hours, 24 minutes
StringFormatLineSeparator 24 4 24 minutes
LambdaToMethodReference 189 124 6 hours, 18 minutes
ReImplementingInterface 16 16 32 minutes
StringBufferToBuilder 5 5 10 minutes
EnhancedForLoopToStreamAnyMatch 9 7 18 minutes
DiamondOperator 175 107 2 hours, 55 minutes
PrimitiveBoxedForString 3 3 15 minutes
StringBuildingLoop 1 1 10 minutes
IndexOfToContains 5 4 10 minutes
PrimitiveObjectUseEquals 26 16 52 minutes
LambdaForEachIfWrapperToFilter 48 38 4 hours, 0 minutes


jSparrow results for citrus

Metrics for citrus:
Total Java file* count 1020
Number of files changed 191
Total number of issues fixed 351
jSparrow execution time 13 minutes, 38 seconds
Total time saved 12 hours, 20 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on citrus.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 2 2 10 minutes
EnhancedForLoopToStreamForEach 5 4 1 hour, 15 minutes
StatementLambdaToExpression 4 4 20 minutes
StringLiteralEqualityCheck 6 3 1 hour, 0 minutes
ArithmethicAssignment 1 1 2 minutes
ForToForEach 1 1 5 minutes
RearrangeClassMembers 7 7 35 minutes
EnumsWithoutEquals 6 1 12 minutes
OverrideAnnotation 33 23 2 hours, 45 minutes
CodeFormatter 191 191 3 hours, 11 minutes
BracketsToControl 1 1 2 minutes
UseStringBuilderAppend 40 28 1 hour, 20 minutes
RemoveUnnecessaryThrows 21 21 42 minutes
StringBufferToBuilder 1 1 2 minutes
LambdaToMethodReference 3 3 6 minutes
RemoveExplicitCallToSuper 19 17 19 minutes
MultiCatch 1 1 5 minutes
DiamondOperator 9 8 9 minutes


jSparrow results for HL7Receiver

Metrics for HL7Receiver:
Total Java file* count 161
Number of files changed 161
Total number of issues fixed 1094
jSparrow execution time 6 minutes, 51 seconds
Total time saved 61 hours, 37 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on HL7Receiver.
Rule ID Issues Fixed Files Changed Time saved
EnhancedForLoopToStreamForEach 29 14 7 hours, 15 minutes
StandardLogger 19 7 3 hours, 10 minutes
GuardCondition 13 7 1 hour, 5 minutes
LambdaForEachCollect 2 2 30 minutes
FieldRenaming 12 2 3 hours, 0 minutes
UseIsEmptyOnCollections 2 1 4 minutes
StatementLambdaToExpression 26 13 2 hours, 10 minutes
StringLiteralEqualityCheck 6 5 1 hour, 0 minutes
FunctionalInterface 4 1 20 minutes
ForToForEach 2 2 10 minutes
RearrangeClassMembers 10 10 50 minutes
EnumsWithoutEquals 9 2 18 minutes
OverrideAnnotation 50 13 4 hours, 10 minutes
BracketsToControl 501 72 16 hours, 42 minutes
CodeFormatter 161 161 2 hours, 41 minutes
UseStringBuilderAppend 106 42 3 hours, 32 minutes
RemoveUnnecessaryThrows 3 2 6 minutes
LambdaToMethodReference 48 16 1 hour, 36 minutes
RemoveExplicitCallToSuper 9 9 9 minutes
StringUtils 71 30 11 hours, 50 minutes
TryWithResource 1 1 15 minutes
IndexOfToContains 1 1 2 minutes
PrimitiveObjectUseEquals 1 1 2 minutes
LambdaForEachIfWrapperToFilter 8 7 40 minutes


jSparrow results for getting-started-java

Metrics for getting-started-java:
Total Java file* count 168
Number of files changed 153
Total number of issues fixed 405
jSparrow execution time 10 minutes, 2 seconds
Total time saved 32 hours, 34 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on getting-started-java.
Rule ID Issues Fixed Files Changed Time saved
CodeFormatter 153 153 2 hours, 33 minutes
EnhancedForLoopToStreamForEach 28 16 7 hours, 0 minutes
GuardCondition 3 3 15 minutes
UseStringBuilderAppend 62 34 2 hours, 4 minutes
StringBufferToBuilder 10 10 20 minutes
StatementLambdaToExpression 23 17 1 hour, 55 minutes
StringLiteralEqualityCheck 72 30 12 hours, 0 minutes
StringUtils 29 19 4 hours, 50 minutes
DiamondOperator 7 7 7 minutes
RearrangeClassMembers 18 18 1 hour, 30 minutes


jSparrow results for vert.x

Metrics for vert.x:
Total Java file* count 442
Number of files changed 407
Total number of issues fixed 1689
jSparrow execution time 12 minutes, 21 seconds
Total time saved 127 hours, 45 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on vert.x.
Rule ID Issues Fixed Files Changed Time saved
StandardLogger 192 38 32 hours, 0 minutes
GuardCondition 66 39 5 hours, 30 minutes
EnhancedForLoopToStreamForEach 54 31 13 hours, 30 minutes
FieldRenaming 8 3 2 hours, 0 minutes
UseIsEmptyOnCollections 7 3 14 minutes
EnhancedForLoopToStreamFindFirst 4 2 8 minutes
StatementLambdaToExpression 187 52 15 hours, 35 minutes
StringLiteralEqualityCheck 31 12 5 hours, 10 minutes
FunctionalInterface 1 1 5 minutes
LambdaForEachMap 1 1 15 minutes
MultiVariableDeclarationLine 3 3 6 minutes
RearrangeClassMembers 55 54 4 hours, 35 minutes
EnumsWithoutEquals 1 1 2 minutes
OverrideAnnotation 386 62 32 hours, 10 minutes
BracketsToControl 86 26 2 hours, 52 minutes
CodeFormatter 407 407 6 hours, 47 minutes
RemoveUnnecessaryThrows 45 16 1 hour, 30 minutes
UseStringBuilderAppend 123 68 4 hours, 6 minutes
ReImplementingInterface 2 2 4 minutes
LambdaToMethodReference 17 13 34 minutes
RemoveExplicitCallToSuper 3 3 3 minutes
EnhancedForLoopToStreamAnyMatch 3 2 6 minutes
DiamondOperator 3 2 3 minutes
LambdaForEachIfWrapperToFilter 4 4 20 minutes


jSparrow results for cucumber-jvm

Metrics for cucumber-jvm:
Total Java file* count 265
Number of files changed 260
Total number of issues fixed 656
jSparrow execution time 13 minutes, 34 seconds
Total time saved 26 hours, 15 minutes
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on cucumber-jvm.
Rule ID Issues Fixed Files Changed Time saved
GuardCondition 22 17 1 hour, 50 minutes
FieldRenaming 3 1 45 minutes
StringLiteralEqualityCheck 41 5 6 hours, 50 minutes
ImmutableStaticFinalCollections 4 3 40 minutes
ForToForEach 1 1 5 minutes
RearrangeClassMembers 27 26 2 hours, 15 minutes
RemoveEmptyStatement 1 1 1 minute
OverrideAnnotation 36 14 3 hours, 0 minutes
CodeFormatter 260 260 4 hours, 20 minutes
BracketsToControl 30 12 1 hour, 0 minutes
UseStringBuilderAppend 60 38 2 hours, 0 minutes
RemoveUnnecessaryThrows 8 6 16 minutes
StringFormatLineSeparator 2 2 2 minutes
StringBufferToBuilder 1 1 2 minutes
DiamondOperator 152 61 2 hours, 32 minutes
MultiCatch 6 5 30 minutes
PrimitiveBoxedForString 1 1 5 minutes
PrimitiveObjectUseEquals 1 1 2 minutes