Statistics

For our testing we measured over 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.

jSparrow results for rocketmq

Metrics for rocketmq (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 463 78 15 hours, 26 minutes
Rearrange Class Members 31 27 2 hours, 35 minutes
Reformat Code 652 652 10 hours, 52 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Call To super() 15 12 15 minutes
Remove Explicit Type Argument 169 74 2 hours, 49 minutes
Remove Inherited Interfaces from Class Declaration 1 1 2 minutes
Remove toString() on String 2 2 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 8 3 16 minutes
Reorder String Equality Check 23 10 3 hours, 50 minutes
Replace Assignment with Compound Operator 6 6 12 minutes
Replace Equality Check with isEmpty() 6 6 12 minutes
Replace equals() on Enum Constants 35 7 1 hour, 10 minutes
Replace For-Loop with Enhanced-For-Loop 11 11 55 minutes
Replace Inefficient Constructors with valueOf() 21 4 1 hour, 45 minutes
Replace While-Loop with Enhanced For-Loop 5 4 25 minutes
Split Multiple Variable Declarations 13 8 26 minutes
StringBuffer() to StringBuilder() 10 8 20 minutes
System Out To Logging 417 118 69 hours, 30 minutes
Use @Override Annotation 198 52 16 hours, 30 minutes
Use equals() on Primitive Objects 2 2 4 minutes
Use Guard Condition 114 62 9 hours, 30 minutes
Use Multi-Catch 1 1 5 minutes
Use Portable Newline 4 2 4 minutes
Use StringBuilder::append 373 139 12 hours, 26 minutes
Use StringUtils Methods 204 68 34 hours, 0 minutes


jSparrow results for spring-cloud-gateway

Metrics for spring-cloud-gateway (created on 27.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 10 6 20 minutes
Rearrange Class Members 13 12 1 hour, 5 minutes
Reformat Code 111 111 1 hour, 51 minutes
Remove Boxing for String Conversions 3 1 15 minutes
Remove Explicit Type Argument 2 2 2 minutes
Remove Lambda Expression Parenthesis 12 12 1 hour, 0 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 2 2 4 minutes
Rename fields 7 2 1 hour, 45 minutes
Reorder String Equality Check 1 1 10 minutes
Replace equals() on Enum Constants 3 2 6 minutes
Replace Expression Lambda with Method Reference 4 3 8 minutes
Replace For-Loop with Stream::forEach 13 8 3 hours, 15 minutes
Replace Inefficient Constructors with valueOf() 2 2 10 minutes
StringBuffer() to StringBuilder() 3 3 6 minutes
System Out To Logging 6 5 1 hour, 0 minutes
Use @Override Annotation 9 9 45 minutes
Use Guard Condition 8 8 40 minutes
Use Stream::filter 1 1 5 minutes
Use Stream::map 1 1 15 minutes
Use StringBuilder::append 38 23 1 hour, 16 minutes


jSparrow results for enmasse

Metrics for enmasse (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 70 32 2 hours, 20 minutes
Rearrange Class Members 10 10 50 minutes
Reformat Code 190 190 3 hours, 10 minutes
Remove Explicit Call To super() 2 2 2 minutes
Remove Lambda Expression Parenthesis 19 7 1 hour, 35 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 7 7 14 minutes
Rename fields 27 2 6 hours, 45 minutes
Reorder String Equality Check 1 1 10 minutes
Replace equals() on Enum Constants 4 3 8 minutes
Replace Expression Lambda with Method Reference 12 9 24 minutes
Replace For-Loop with Stream::anyMatch 1 1 2 minutes
Replace For-Loop with Stream::findFirst 9 5 18 minutes
Replace For-Loop with Stream::forEach 41 11 10 hours, 15 minutes
Replace put(..) with putIfAbsent(..) 1 1 2 minutes
System Out To Logging 1 1 10 minutes
Use @Override Annotation 8 6 40 minutes
Use Guard Condition 3 3 15 minutes
Use Multi-Catch 1 1 5 minutes
Use Stream::filter 2 2 10 minutes
Use Stream::map 2 2 30 minutes
Use StringBuilder::append 44 25 1 hour, 28 minutes


jSparrow results for philadelphia

Metrics for philadelphia (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 78 20 2 hours, 36 minutes
Rearrange Class Members 8 8 40 minutes
Reformat Code 66 66 1 hour, 6 minutes
Remove Lambda Expression Parenthesis 1 1 5 minutes
Remove Unnecessary Semicolons 1 1 1 minute
Remove Unnecessary Thrown Exceptions on Method Signatures 8 1 16 minutes
Replace Expression Lambda with Method Reference 1 1 2 minutes
Replace For-Loop with Stream::forEach 1 1 15 minutes
Use @Override Annotation 1 1 5 minutes
Use Guard Condition 1 1 5 minutes
Use StringBuilder::append 3 3 6 minutes
Use StringUtils Methods 2 1 20 minutes


jSparrow results for proxyee-down

Metrics for proxyee-down (created on 21.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Reformat Code 11 11 11 minutes
Remove Lambda Expression Parenthesis 3 2 15 minutes
Rename fields 4 1 1 hour, 0 minutes
Replace Expression Lambda with Method Reference 4 4 8 minutes
Replace For-Loop with Stream::findFirst 1 1 2 minutes
Replace For-Loop with Stream::forEach 3 2 45 minutes
Use Stream::filter 1 1 5 minutes
Use StringBuilder::append 1 1 2 minutes


jSparrow results for canal

Metrics for canal (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 249 33 8 hours, 18 minutes
Rearrange Class Members 104 64 8 hours, 40 minutes
Reformat Code 386 386 6 hours, 26 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Call To super() 4 4 4 minutes
Remove Explicit Type Argument 131 57 2 hours, 11 minutes
Remove Inherited Interfaces from Class Declaration 10 10 20 minutes
Remove Lambda Expression Parenthesis 24 17 2 hours, 0 minutes
Remove Unnecessary Semicolons 7 6 7 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 252 52 8 hours, 24 minutes
Rename fields 956 11 239 hours, 0 minutes
Reorder String Equality Check 17 9 2 hours, 50 minutes
Replace Assignment with Compound Operator 7 4 14 minutes
Replace Equality Check with isEmpty() 9 6 18 minutes
Replace equals() on Enum Constants 43 5 1 hour, 26 minutes
Replace Expression Lambda with Method Reference 9 8 18 minutes
Replace For-Loop with Enhanced-For-Loop 25 5 2 hours, 5 minutes
Replace For-Loop with Stream::findFirst 3 1 6 minutes
Replace For-Loop with Stream::forEach 49 21 12 hours, 15 minutes
Replace Inefficient Constructors with valueOf() 22 2 1 hour, 50 minutes
Replace Nested Loops with flatMap 2 2 30 minutes
Split Multiple Variable Declarations 1 1 2 minutes
StringBuffer() to StringBuilder() 2 2 4 minutes
System Out To Logging 123 51 20 hours, 30 minutes
Use @Override Annotation 1027 131 85 hours, 35 minutes
Use equals() on Primitive Objects 3 2 6 minutes
Use Guard Condition 174 47 14 hours, 30 minutes
Use Multi-Catch 2 2 10 minutes
Use Stream::collect 1 1 15 minutes
Use Stream::filter 10 9 50 minutes
Use Stream::map 7 6 1 hour, 45 minutes
Use StringBuilder::append 337 105 11 hours, 14 minutes
Use StringUtils Methods 9 4 1 hour, 30 minutes


jSparrow results for kapua

Metrics for kapua (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 96 95 8 hours, 0 minutes
Reformat Code 1018 1018 16 hours, 58 minutes
Remove Explicit Call To super() 57 57 57 minutes
Remove Explicit Type Argument 32 20 32 minutes
Remove Inherited Interfaces from Class Declaration 14 13 28 minutes
Remove Lambda Expression Parenthesis 39 20 3 hours, 15 minutes
Remove toString() on String 2 2 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 47 14 1 hour, 34 minutes
Reorder String Equality Check 5 3 50 minutes
Replace Concatenation with Infix-Operation 3 3 15 minutes
Replace Equality Check with isEmpty() 4 3 8 minutes
Replace equals() on Enum Constants 33 15 1 hour, 6 minutes
Replace Expression Lambda with Method Reference 4 3 8 minutes
Replace For-Loop with Enhanced-For-Loop 1 1 5 minutes
Replace For-Loop with Stream::collect(Collectors.joining()) 1 1 10 minutes
Replace For-Loop with Stream::findFirst 1 1 2 minutes
Replace For-Loop with Stream::forEach 26 18 6 hours, 30 minutes
Replace indexOf() with contains() 1 1 2 minutes
Replace Inefficient Constructors with valueOf() 4 1 20 minutes
Replace static final Collections with Collections.unmodifiable...() 8 8 1 hour, 20 minutes
StringBuffer() to StringBuilder() 1 1 2 minutes
System Out To Logging 35 20 5 hours, 50 minutes
Use @Override Annotation 153 42 12 hours, 45 minutes
Use Functional Interfaces 20 6 1 hour, 40 minutes
Use Guard Condition 20 17 1 hour, 40 minutes
Use Stream::filter 3 3 15 minutes
Use StringBuilder::append 29 18 58 minutes
Use StringUtils Methods 84 31 14 hours, 0 minutes


jSparrow results for jsprit

Metrics for jsprit (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 797 136 26 hours, 34 minutes
Rearrange Class Members 108 89 9 hours, 0 minutes
Reformat Code 346 346 5 hours, 46 minutes
Remove Boxing for String Conversions 21 10 1 hour, 45 minutes
Remove Explicit Call To super() 119 95 1 hour, 59 minutes
Remove Explicit Type Argument 156 69 2 hours, 36 minutes
Remove Inherited Interfaces from Class Declaration 2 2 4 minutes
Remove Unnecessary Semicolons 1 1 1 minute
Rename fields 161 8 40 hours, 15 minutes
Reorder String Equality Check 61 12 10 hours, 10 minutes
Replace Assignment with Compound Operator 4 3 8 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 72 21 2 hours, 24 minutes
Replace For-Loop with Enhanced-For-Loop 8 4 40 minutes
Replace While-Loop with Enhanced For-Loop 1 1 5 minutes
StringBuffer() to StringBuilder() 1 1 2 minutes
System Out To Logging 118 32 19 hours, 40 minutes
Use @Override Annotation 53 26 4 hours, 25 minutes
Use Guard Condition 34 24 2 hours, 50 minutes
Use Multi-Catch 1 1 5 minutes
Use StringBuilder::append 248 73 8 hours, 16 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for Activiti

Metrics for Activiti (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 59 33 1 hour, 58 minutes
Rearrange Class Members 25 25 2 hours, 5 minutes
Reformat Code 1516 1516 25 hours, 16 minutes
Remove Boxing for String Conversions 12 2 1 hour, 0 minutes
Remove Explicit Call To super() 4 4 4 minutes
Remove Explicit Type Argument 675 243 11 hours, 15 minutes
Remove Inherited Interfaces from Class Declaration 14 14 28 minutes
Remove Lambda Expression Parenthesis 388 198 32 hours, 20 minutes
Remove toString() on String 4 4 8 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 115 15 3 hours, 50 minutes
Rename fields 10 2 2 hours, 30 minutes
Reorder String Equality Check 75 23 12 hours, 30 minutes
Replace Equality Check with isEmpty() 14 9 28 minutes
Replace equals() on Enum Constants 25 10 50 minutes
Replace Expression Lambda with Method Reference 73 49 2 hours, 26 minutes
Replace For-Loop with Enhanced-For-Loop 7 5 35 minutes
Replace For-Loop with Stream::anyMatch 2 1 4 minutes
Replace For-Loop with Stream::findFirst 16 11 32 minutes
Replace For-Loop with Stream::forEach 585 237 146 hours, 15 minutes
Replace indexOf() with contains() 10 2 20 minutes
Replace Inefficient Constructors with valueOf() 31 9 2 hours, 35 minutes
Replace put(..) with putIfAbsent(..) 14 6 28 minutes
Replace While-Loop with Enhanced For-Loop 5 4 25 minutes
Split Multiple Variable Declarations 6 3 12 minutes
StringBuffer() to StringBuilder() 3 2 6 minutes
System Out To Logging 103 35 17 hours, 10 minutes
Use @Override Annotation 2737 605 228 hours, 5 minutes
Use Functional Interfaces 46 21 3 hours, 50 minutes
Use Guard Condition 230 132 19 hours, 10 minutes
Use Multi-Catch 8 4 40 minutes
Use Stream::collect 5 5 1 hour, 15 minutes
Use Stream::filter 105 69 8 hours, 45 minutes
Use Stream::map 31 23 7 hours, 45 minutes
Use String Literals 2 1 10 minutes
Use StringBuilder::append 453 221 15 hours, 6 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for lance

Metrics for lance (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 153 53 5 hours, 6 minutes
Rearrange Class Members 44 42 3 hours, 40 minutes
Reformat Code 211 211 3 hours, 31 minutes
Remove Boxing for String Conversions 4 2 20 minutes
Remove Explicit Call To super() 11 11 11 minutes
Remove Explicit Type Argument 7 6 7 minutes
Remove Lambda Expression Parenthesis 27 15 2 hours, 15 minutes
Remove toString() on String 1 1 2 minutes
Rename fields 23 3 5 hours, 45 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 12 4 24 minutes
Replace Expression Lambda with Method Reference 5 5 10 minutes
Replace For-Loop with Stream::anyMatch 2 2 4 minutes
Replace For-Loop with Stream::findFirst 1 1 2 minutes
Replace For-Loop with Stream::forEach 26 16 6 hours, 30 minutes
Replace indexOf() with contains() 2 1 4 minutes
StringBuffer() to StringBuilder() 1 1 2 minutes
System Out To Logging 30 18 5 hours, 0 minutes
Use @Override Annotation 2 2 10 minutes
Use equals() on Primitive Objects 4 1 8 minutes
Use Functional Interfaces 29 7 2 hours, 25 minutes
Use Guard Condition 7 4 35 minutes
Use Multi-Catch 8 3 40 minutes
Use Stream::filter 2 2 10 minutes
Use Stream::map 3 3 45 minutes
Use StringBuilder::append 108 54 3 hours, 36 minutes


jSparrow results for openmrs-core

Metrics for openmrs-core (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 3 2 6 minutes
Rearrange Class Members 81 76 6 hours, 45 minutes
Reformat Code 726 726 12 hours, 6 minutes
Remove Boxing for String Conversions 6 5 30 minutes
Remove Explicit Call To super() 19 19 19 minutes
Remove Explicit Type Argument 10 7 10 minutes
Remove Inherited Interfaces from Class Declaration 38 37 1 hour, 16 minutes
Remove Lambda Expression Parenthesis 185 88 15 hours, 25 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 1650 152 55 hours, 0 minutes
Rename fields 24 4 6 hours, 0 minutes
Reorder String Equality Check 1 1 10 minutes
Replace Assignment with Compound Operator 1 1 2 minutes
Replace Concatenation with Infix-Operation 2 2 10 minutes
Replace Equality Check with isEmpty() 18 11 36 minutes
Replace equals() on Enum Constants 10 6 20 minutes
Replace Expression Lambda with Method Reference 58 37 1 hour, 56 minutes
Replace For-Loop with Stream::anyMatch 14 11 28 minutes
Replace For-Loop with Stream::findFirst 25 15 50 minutes
Replace For-Loop with Stream::forEach 299 102 74 hours, 45 minutes
Replace Inefficient Constructors with valueOf() 11 2 55 minutes
Replace Nested Loops with flatMap 1 1 15 minutes
Replace put(..) with putIfAbsent(..) 5 3 10 minutes
Split Multiple Variable Declarations 1 1 2 minutes
System Out To Logging 159 69 26 hours, 30 minutes
Use @Override Annotation 3 3 15 minutes
Use equals() on Primitive Objects 2 2 4 minutes
Use Guard Condition 117 82 9 hours, 45 minutes
Use Stream::collect 18 14 4 hours, 30 minutes
Use Stream::filter 83 46 6 hours, 55 minutes
Use Stream::map 24 13 6 hours, 0 minutes
Use StringBuilder::append 502 153 16 hours, 44 minutes
Use StringUtils Methods 375 75 62 hours, 30 minutes
Use Try-With-Resource 6 5 1 hour, 30 minutes


jSparrow results for orson-charts

Metrics for orson-charts (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 8 1 16 minutes
Rearrange Class Members 11 11 55 minutes
Reformat Code 245 245 4 hours, 5 minutes
Remove Explicit Call To super() 10 10 10 minutes
Remove Inherited Interfaces from Class Declaration 25 23 50 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 2 1 4 minutes
Rename fields 12 3 3 hours, 0 minutes
Replace Assignment with Compound Operator 32 12 1 hour, 4 minutes
Replace equals() on Enum Constants 76 18 2 hours, 32 minutes
Replace For-Loop with Enhanced-For-Loop 3 2 15 minutes
Replace Inefficient Constructors with valueOf() 19 2 1 hour, 35 minutes
Split Multiple Variable Declarations 16 8 32 minutes
Use @Override Annotation 2 2 10 minutes
Use Guard Condition 46 23 3 hours, 50 minutes
Use StringBuilder::append 45 19 1 hour, 30 minutes


jSparrow results for spring-cloud-config

Metrics for spring-cloud-config (created on 23.11.2018):

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.


jSparrow results for ratel

Metrics for ratel (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 19 5 38 minutes
Rearrange Class Members 9 5 45 minutes
Reformat Code 90 90 1 hour, 30 minutes
Remove Explicit Call To super() 1 1 1 minute
Remove Explicit Type Argument 5 3 5 minutes
Remove Lambda Expression Parenthesis 10 5 50 minutes
Rename fields 66 2 16 hours, 30 minutes
Reorder String Equality Check 15 7 2 hours, 30 minutes
Replace Assignment with Compound Operator 1 1 2 minutes
Replace Expression Lambda with Method Reference 4 2 8 minutes
Replace For-Loop with Enhanced-For-Loop 8 2 40 minutes
Replace For-Loop with Stream::findFirst 2 2 4 minutes
Replace For-Loop with Stream::forEach 20 10 5 hours, 0 minutes
Use @Override Annotation 25 3 2 hours, 5 minutes
Use Functional Interfaces 3 3 15 minutes
Use Guard Condition 28 9 2 hours, 20 minutes
Use Stream::filter 5 5 25 minutes
Use Stream::map 2 2 30 minutes
Use StringBuilder::append 34 23 1 hour, 8 minutes


jSparrow results for jfreechart-fse

Metrics for jfreechart-fse (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 3 1 6 minutes
Rearrange Class Members 49 49 4 hours, 5 minutes
Reformat Code 690 690 11 hours, 30 minutes
Remove Explicit Call To super() 85 85 1 hour, 25 minutes
Remove Explicit Type Argument 365 115 6 hours, 5 minutes
Remove Inherited Interfaces from Class Declaration 305 162 10 hours, 10 minutes
Remove Lambda Expression Parenthesis 113 30 9 hours, 25 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 2 1 4 minutes
Rename fields 24 4 6 hours, 0 minutes
Reorder String Equality Check 32 13 5 hours, 20 minutes
Replace Assignment with Compound Operator 138 47 4 hours, 36 minutes
Replace equals() on Enum Constants 137 39 4 hours, 34 minutes
Replace Expression Lambda with Method Reference 47 16 1 hour, 34 minutes
Replace For-Loop with Enhanced-For-Loop 2 2 10 minutes
Replace For-Loop with Stream::findFirst 14 7 28 minutes
Replace For-Loop with Stream::forEach 165 47 41 hours, 15 minutes
Replace indexOf() with contains() 1 1 2 minutes
Replace Inefficient Constructors with valueOf() 56 24 4 hours, 40 minutes
Split Multiple Variable Declarations 44 26 1 hour, 28 minutes
Use @Override Annotation 39 25 3 hours, 15 minutes
Use Functional Interfaces 2 2 10 minutes
Use Guard Condition 241 117 20 hours, 5 minutes
Use Multi-Catch 11 7 55 minutes
Use Stream::collect 4 2 1 hour, 0 minutes
Use Stream::filter 63 11 5 hours, 15 minutes
Use Stream::map 14 9 3 hours, 30 minutes
Use StringBuilder::append 90 58 3 hours, 0 minutes


jSparrow results for egeria

Metrics for egeria (created on 26.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 6 3 12 minutes
Rearrange Class Members 27 27 2 hours, 15 minutes
Reformat Code 336 336 5 hours, 36 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Call To super() 15 13 15 minutes
Remove Explicit Type Argument 3 1 3 minutes
Remove Lambda Expression Parenthesis 6 6 30 minutes
Reorder String Equality Check 24 6 4 hours, 0 minutes
Replace For-Loop with Enhanced-For-Loop 12 1 1 hour, 0 minutes
Replace For-Loop with Stream::forEach 10 8 2 hours, 30 minutes
Use @Override Annotation 116 26 9 hours, 40 minutes
Use Guard Condition 9 5 45 minutes
Use Multi-Catch 1 1 5 minutes
Use Stream::collect 1 1 15 minutes
Use Stream::filter 5 5 25 minutes
Use StringBuilder::append 153 102 5 hours, 6 minutes


jSparrow results for primefaces

Metrics for primefaces (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 22 8 44 minutes
Rearrange Class Members 175 175 14 hours, 35 minutes
Reformat Code 1036 1036 17 hours, 16 minutes
Remove Boxing for String Conversions 6 1 30 minutes
Remove Explicit Call To super() 13 13 13 minutes
Remove Explicit Type Argument 21 16 21 minutes
Remove Inherited Interfaces from Class Declaration 3 3 6 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 153 59 5 hours, 6 minutes
Rename fields 53 1 13 hours, 15 minutes
Reorder String Equality Check 332 103 55 hours, 20 minutes
Replace Equality Check with isEmpty() 2 2 4 minutes
Replace equals() on Enum Constants 11 8 22 minutes
Replace For-Loop with Enhanced-For-Loop 73 37 6 hours, 5 minutes
Replace indexOf() with contains() 3 2 6 minutes
Replace Inefficient Constructors with valueOf() 11 3 55 minutes
Replace While-Loop with Enhanced For-Loop 2 2 10 minutes
StringBuffer() to StringBuilder() 1 1 2 minutes
System Out To Logging 57 18 9 hours, 30 minutes
Use Guard Condition 171 121 14 hours, 15 minutes
Use Multi-Catch 3 3 15 minutes
Use StringBuilder::append 608 209 20 hours, 16 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for BroadleafCommerce

Metrics for BroadleafCommerce (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 1127 178 37 hours, 34 minutes
Rearrange Class Members 217 215 18 hours, 5 minutes
Reformat Code 2648 2648 44 hours, 8 minutes
Remove Boxing for String Conversions 4 3 20 minutes
Remove Explicit Call To super() 56 56 56 minutes
Remove Explicit Type Argument 906 412 15 hours, 6 minutes
Remove Inherited Interfaces from Class Declaration 8 8 16 minutes
Remove toString() on String 4 3 8 minutes
Remove Unnecessary Semicolons 3 2 3 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 177 110 5 hours, 54 minutes
Rename fields 271 29 67 hours, 45 minutes
Reorder String Equality Check 120 44 20 hours, 0 minutes
Replace Assignment with Compound Operator 18 6 36 minutes
Replace Equality Check with isEmpty() 12 10 24 minutes
Replace equals() on Enum Constants 111 46 3 hours, 42 minutes
Replace For-Loop with Enhanced-For-Loop 17 10 1 hour, 25 minutes
Replace indexOf() with contains() 5 4 10 minutes
Replace Inefficient Constructors with valueOf() 25 15 2 hours, 5 minutes
Replace static final Collections with Collections.unmodifiable...() 2 2 20 minutes
Replace While-Loop with Enhanced For-Loop 4 4 20 minutes
Split Multiple Variable Declarations 5 4 10 minutes
StringBuffer() to StringBuilder() 20 17 40 minutes
System Out To Logging 238 131 39 hours, 40 minutes
Use @Override Annotation 690 258 57 hours, 30 minutes
Use equals() on Primitive Objects 7 4 14 minutes
Use Guard Condition 267 202 22 hours, 15 minutes
Use Multi-Catch 38 29 3 hours, 10 minutes
Use String Literals 7 5 35 minutes
Use StringBuilder::append 723 282 24 hours, 6 minutes
Use StringUtils Methods 719 183 119 hours, 50 minutes


jSparrow results for arthas

Metrics for arthas (created on 21.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 13 4 26 minutes
Rearrange Class Members 27 27 2 hours, 15 minutes
Reformat Code 235 235 3 hours, 55 minutes
Remove Boxing for String Conversions 40 9 3 hours, 20 minutes
Remove Explicit Call To super() 2 2 2 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 18 7 36 minutes
Rename fields 213 11 53 hours, 15 minutes
Reorder String Equality Check 23 6 3 hours, 50 minutes
Replace Concatenation with Infix-Operation 5 1 25 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 3 2 6 minutes
Replace Inefficient Constructors with valueOf() 2 1 10 minutes
Split Multiple Variable Declarations 12 9 24 minutes
StringBuffer() to StringBuilder() 3 2 6 minutes
System Out To Logging 60 28 10 hours, 0 minutes
Use @Override Annotation 28 14 2 hours, 20 minutes
Use Guard Condition 30 16 2 hours, 30 minutes
Use StringBuilder::append 126 55 4 hours, 12 minutes


jSparrow results for moshi

Metrics for moshi (created on 22.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 107 19 3 hours, 34 minutes
Rearrange Class Members 14 13 1 hour, 10 minutes
Reformat Code 51 51 51 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 1 1 2 minutes
Reorder String Equality Check 4 2 40 minutes
Use @Override Annotation 8 1 40 minutes
Use Guard Condition 8 7 40 minutes
Use StringBuilder::append 85 28 2 hours, 50 minutes


jSparrow results for platform

Metrics for platform (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 12 12 1 hour, 0 minutes
Reformat Code 255 255 4 hours, 15 minutes
Remove Lambda Expression Parenthesis 1 1 5 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 1 1 2 minutes
Rename fields 4 1 1 hour, 0 minutes
Replace For-Loop with Stream::forEach 1 1 15 minutes
System Out To Logging 9 5 1 hour, 30 minutes
Use @Override Annotation 8 4 40 minutes
Use Guard Condition 3 3 15 minutes
Use StringBuilder::append 9 6 18 minutes
Use StringUtils Methods 10 8 1 hour, 40 minutes


jSparrow results for metatron-discovery

Metrics for metatron-discovery (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 28 11 56 minutes
Rearrange Class Members 8 8 40 minutes
Reformat Code 254 254 4 hours, 14 minutes
Remove Explicit Call To super() 6 5 6 minutes
Remove Explicit Type Argument 3 3 3 minutes
Remove Inherited Interfaces from Class Declaration 5 5 10 minutes
Rename fields 1 1 15 minutes
Reorder String Equality Check 1 1 10 minutes
Replace For-Loop with Stream::forEach 4 4 1 hour, 0 minutes
StringBuffer() to StringBuilder() 6 3 12 minutes
Use @Override Annotation 10 6 50 minutes
Use Functional Interfaces 1 1 5 minutes
Use StringBuilder::append 59 42 1 hour, 58 minutes


jSparrow results for brave

Metrics for brave (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 466 124 15 hours, 32 minutes
Rearrange Class Members 107 98 8 hours, 55 minutes
Reformat Code 234 234 3 hours, 54 minutes
Remove Lambda Expression Parenthesis 3 3 15 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 3 2 6 minutes
Reorder String Equality Check 4 3 40 minutes
Replace equals() on Enum Constants 1 1 2 minutes
Replace Expression Lambda with Method Reference 2 2 4 minutes
Replace For-Loop with Stream::findFirst 1 1 2 minutes
Replace For-Loop with Stream::forEach 5 5 1 hour, 15 minutes
Split Multiple Variable Declarations 39 28 1 hour, 18 minutes
System Out To Logging 24 17 4 hours, 0 minutes
Use @Override Annotation 12 2 1 hour, 0 minutes
Use Functional Interfaces 1 1 5 minutes
Use Guard Condition 12 9 1 hour, 0 minutes
Use Multi-Catch 2 2 10 minutes
Use StringBuilder::append 42 40 1 hour, 24 minutes


jSparrow results for Amy

Metrics for Amy (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 148 59 4 hours, 56 minutes
Rearrange Class Members 36 36 3 hours, 0 minutes
Reformat Code 343 343 5 hours, 43 minutes
Remove Explicit Call To super() 1 1 1 minute
Remove Explicit Type Argument 1 1 1 minute
Remove Lambda Expression Parenthesis 37 29 3 hours, 5 minutes
Reorder String Equality Check 36 13 6 hours, 0 minutes
Replace Concatenation with Infix-Operation 16 5 1 hour, 20 minutes
Replace equals() on Enum Constants 8 5 16 minutes
Replace Expression Lambda with Method Reference 14 10 28 minutes
Replace For-Loop with Enhanced-For-Loop 1 1 5 minutes
Replace For-Loop with Stream::anyMatch 1 1 2 minutes
Replace For-Loop with Stream::findFirst 3 3 6 minutes
Replace For-Loop with Stream::forEach 63 36 15 hours, 45 minutes
Replace While-Loop with Enhanced For-Loop 1 1 5 minutes
System Out To Logging 19 15 3 hours, 10 minutes
Use @Override Annotation 33 6 2 hours, 45 minutes
Use Guard Condition 62 36 5 hours, 10 minutes
Use Stream::filter 6 6 30 minutes
Use Stream::map 5 4 1 hour, 15 minutes
Use StringBuilder::append 133 58 4 hours, 26 minutes
Use StringUtils Methods 59 29 9 hours, 50 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for spring-cloud-sleuth

Metrics for spring-cloud-sleuth (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 4 3 8 minutes
Rearrange Class Members 9 8 45 minutes
Reformat Code 118 118 1 hour, 58 minutes
Remove Explicit Type Argument 4 4 4 minutes
Remove Lambda Expression Parenthesis 9 8 45 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 28 16 56 minutes
Replace Expression Lambda with Method Reference 4 3 8 minutes
Replace For-Loop with Stream::anyMatch 2 2 4 minutes
Replace For-Loop with Stream::forEach 8 6 2 hours, 0 minutes
Split Multiple Variable Declarations 1 1 2 minutes
System Out To Logging 9 7 1 hour, 30 minutes
Use @Override Annotation 1 1 5 minutes
Use Functional Interfaces 6 6 30 minutes
Use Guard Condition 10 10 50 minutes
Use Stream::filter 2 2 10 minutes
Use StringBuilder::append 48 31 1 hour, 36 minutes


jSparrow results for flowable-engine

Metrics for flowable-engine (created on 27.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 95 54 3 hours, 10 minutes
Rearrange Class Members 56 56 4 hours, 40 minutes
Reformat Code 2735 2735 45 hours, 35 minutes
Remove Explicit Call To super() 15 15 15 minutes
Remove Explicit Type Argument 15 3 15 minutes
Remove Inherited Interfaces from Class Declaration 12 12 24 minutes
Remove Lambda Expression Parenthesis 514 268 42 hours, 50 minutes
Remove toString() on String 2 1 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 29 22 58 minutes
Rename fields 5 1 1 hour, 15 minutes
Reorder String Equality Check 61 20 10 hours, 10 minutes
Replace Equality Check with isEmpty() 17 10 34 minutes
Replace equals() on Enum Constants 6 4 12 minutes
Replace Expression Lambda with Method Reference 108 79 3 hours, 36 minutes
Replace For-Loop with Enhanced-For-Loop 10 9 50 minutes
Replace For-Loop with Stream::anyMatch 8 5 16 minutes
Replace For-Loop with Stream::findFirst 22 14 44 minutes
Replace For-Loop with Stream::forEach 814 329 203 hours, 30 minutes
Replace indexOf() with contains() 16 2 32 minutes
Replace Inefficient Constructors with valueOf() 13 8 1 hour, 5 minutes
Replace Nested Loops with flatMap 1 1 15 minutes
Replace put(..) with putIfAbsent(..) 20 12 40 minutes
Replace static final Collections with Collections.unmodifiable...() 2 2 20 minutes
Replace While-Loop with Enhanced For-Loop 10 8 50 minutes
Split Multiple Variable Declarations 2 2 4 minutes
System Out To Logging 112 50 18 hours, 40 minutes
Use @Override Annotation 29 24 2 hours, 25 minutes
Use equals() on Primitive Objects 3 3 6 minutes
Use Functional Interfaces 84 41 7 hours, 0 minutes
Use Guard Condition 436 224 36 hours, 20 minutes
Use Multi-Catch 9 5 45 minutes
Use Optional::ifPresent 5 3 10 minutes
Use Stream::collect 8 7 2 hours, 0 minutes
Use Stream::filter 132 93 11 hours, 0 minutes
Use Stream::map 40 29 10 hours, 0 minutes
Use String Literals 1 1 5 minutes
Use StringBuilder::append 600 334 20 hours, 0 minutes


jSparrow results for takes

Metrics for takes (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 1 1 5 minutes
Reformat Code 60 60 1 hour, 0 minutes
Remove Explicit Call To super() 4 4 4 minutes
Remove Explicit Type Argument 8 5 8 minutes
Remove Lambda Expression Parenthesis 1 1 5 minutes
Use Functional Interfaces 2 2 10 minutes


jSparrow results for morpheus-core

Metrics for morpheus-core (created on 16.11.2018):

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.


jSparrow results for symphony

Metrics for symphony (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 2 1 4 minutes
Rearrange Class Members 25 25 2 hours, 5 minutes
Reformat Code 223 223 3 hours, 43 minutes
Remove Boxing for String Conversions 4 1 20 minutes
Remove Explicit Type Argument 4 3 4 minutes
Remove Lambda Expression Parenthesis 34 22 2 hours, 50 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 4 3 8 minutes
Rename fields 124 7 31 hours, 0 minutes
Reorder String Equality Check 2 2 20 minutes
Replace Assignment with Compound Operator 1 1 2 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 2 1 4 minutes
Replace Expression Lambda with Method Reference 13 8 26 minutes
Replace For-Loop with Enhanced-For-Loop 12 8 1 hour, 0 minutes
Replace For-Loop with Stream::anyMatch 8 6 16 minutes
Replace For-Loop with Stream::findFirst 2 2 4 minutes
Replace For-Loop with Stream::forEach 45 27 11 hours, 15 minutes
Replace Nested Loops with flatMap 1 1 15 minutes
Replace While-Loop with Enhanced For-Loop 3 1 15 minutes
StringBuffer() to StringBuilder() 4 2 8 minutes
System Out To Logging 6 3 1 hour, 0 minutes
Use @Override Annotation 1 1 5 minutes
Use equals() on Primitive Objects 2 1 4 minutes
Use Guard Condition 7 7 35 minutes
Use Portable Newline 1 1 1 minute
Use Stream::collect 1 1 15 minutes
Use Stream::filter 8 7 40 minutes
Use Stream::map 4 4 1 hour, 0 minutes
Use StringBuilder::append 503 104 16 hours, 46 minutes


jSparrow results for incubator-dubbo

Metrics for incubator-dubbo (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 23 22 1 hour, 55 minutes
Reformat Code 738 738 12 hours, 18 minutes
Remove Explicit Call To super() 12 11 12 minutes
Remove Explicit Type Argument 432 165 7 hours, 12 minutes
Remove Inherited Interfaces from Class Declaration 5 5 10 minutes
Remove Lambda Expression Parenthesis 94 48 7 hours, 50 minutes
Remove toString() on String 1 1 2 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 182 108 6 hours, 4 minutes
Rename fields 62 13 15 hours, 30 minutes
Reorder String Equality Check 12 8 2 hours, 0 minutes
Replace Assignment with Compound Operator 6 3 12 minutes
Replace Equality Check with isEmpty() 179 54 5 hours, 58 minutes
Replace equals() on Enum Constants 7 2 14 minutes
Replace Expression Lambda with Method Reference 52 32 1 hour, 44 minutes
Replace For-Loop with Enhanced-For-Loop 24 10 2 hours, 0 minutes
Replace For-Loop with Stream::anyMatch 7 5 14 minutes
Replace For-Loop with Stream::findFirst 6 5 12 minutes
Replace For-Loop with Stream::forEach 173 69 43 hours, 15 minutes
Replace Inefficient Constructors with valueOf() 11 4 55 minutes
Replace Nested Loops with flatMap 6 3 1 hour, 30 minutes
Replace put(..) with putIfAbsent(..) 2 2 4 minutes
Replace static final Collections with Collections.unmodifiable...() 3 2 30 minutes
Replace While-Loop with Enhanced For-Loop 1 1 5 minutes
Split Multiple Variable Declarations 47 19 1 hour, 34 minutes
StringBuffer() to StringBuilder() 3 3 6 minutes
System Out To Logging 47 16 7 hours, 50 minutes
Use Functional Interfaces 71 33 5 hours, 55 minutes
Use Guard Condition 62 46 5 hours, 10 minutes
Use Multi-Catch 20 9 1 hour, 40 minutes
Use Portable Newline 9 1 9 minutes
Use Stream::collect 16 9 4 hours, 0 minutes
Use Stream::filter 38 20 3 hours, 10 minutes
Use Stream::map 14 10 3 hours, 30 minutes
Use StringBuilder::append 634 173 21 hours, 8 minutes
Use StringUtils Methods 4 1 40 minutes


jSparrow results for HealthPlus

Metrics for HealthPlus (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 45 9 1 hour, 30 minutes
Rearrange Class Members 2 2 10 minutes
Reformat Code 10 10 10 minutes
Remove Explicit Type Argument 62 8 1 hour, 2 minutes
Reorder String Equality Check 10 4 1 hour, 40 minutes
Replace Assignment with Compound Operator 1 1 2 minutes
Split Multiple Variable Declarations 2 1 4 minutes
Use equals() on Primitive Objects 5 2 10 minutes
Use StringBuilder::append 272 8 9 hours, 4 minutes
Use Try-With-Resource 2 1 30 minutes


jSparrow results for presto

Metrics for presto (created on 27.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 329 317 27 hours, 25 minutes
Reformat Code 2716 2716 45 hours, 16 minutes
Remove Inherited Interfaces from Class Declaration 1 1 2 minutes
Remove Lambda Expression Parenthesis 468 231 39 hours, 0 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 29 17 58 minutes
Reorder String Equality Check 37 20 6 hours, 10 minutes
Replace Assignment with Compound Operator 8 3 16 minutes
Replace Concatenation with Infix-Operation 1 1 5 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 18 12 36 minutes
Replace Expression Lambda with Method Reference 115 67 3 hours, 50 minutes
Replace For-Loop with Enhanced-For-Loop 12 9 1 hour, 0 minutes
Replace For-Loop with Stream::anyMatch 4 4 8 minutes
Replace For-Loop with Stream::findFirst 6 5 12 minutes
Replace For-Loop with Stream::forEach 734 298 183 hours, 30 minutes
Replace put(..) with putIfAbsent(..) 1 1 2 minutes
System Out To Logging 179 73 29 hours, 50 minutes
Use @Override Annotation 42 30 3 hours, 30 minutes
Use Functional Interfaces 7 6 35 minutes
Use Guard Condition 193 144 16 hours, 5 minutes
Use Optional::ifPresent 120 39 4 hours, 0 minutes
Use Stream::filter 45 33 3 hours, 45 minutes
Use Stream::map 54 40 13 hours, 30 minutes
Use StringBuilder::append 745 154 24 hours, 50 minutes
Use StringUtils Methods 299 106 49 hours, 50 minutes


jSparrow results for stringtemplate4

Metrics for stringtemplate4 (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 90 21 3 hours, 0 minutes
Rearrange Class Members 5 5 25 minutes
Reformat Code 49 49 49 minutes
Remove Explicit Call To super() 2 2 2 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 5 5 10 minutes
Reorder String Equality Check 9 2 1 hour, 30 minutes
Use @Override Annotation 12 1 1 hour, 0 minutes
Use Guard Condition 2 2 10 minutes
Use Portable Newline 3 1 3 minutes
Use StringBuilder::append 41 16 1 hour, 22 minutes


jSparrow results for killbill

Metrics for killbill (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 5 1 10 minutes
Rearrange Class Members 54 52 4 hours, 30 minutes
Reformat Code 842 842 14 hours, 2 minutes
Remove Explicit Call To super() 27 27 27 minutes
Remove Explicit Type Argument 411 131 6 hours, 51 minutes
Remove Inherited Interfaces from Class Declaration 16 15 32 minutes
Remove Lambda Expression Parenthesis 152 64 12 hours, 40 minutes
Remove Unnecessary Semicolons 2 2 2 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 14 7 28 minutes
Rename fields 9 4 2 hours, 15 minutes
Reorder String Equality Check 1 1 10 minutes
Replace Assignment with Compound Operator 3 3 6 minutes
Replace Concatenation with Infix-Operation 2 1 10 minutes
Replace Equality Check with isEmpty() 5 4 10 minutes
Replace equals() on Enum Constants 135 41 4 hours, 30 minutes
Replace Expression Lambda with Method Reference 42 21 1 hour, 24 minutes
Replace For-Loop with Stream::anyMatch 6 4 12 minutes
Replace For-Loop with Stream::findFirst 7 6 14 minutes
Replace For-Loop with Stream::forEach 135 63 33 hours, 45 minutes
Replace Inefficient Constructors with valueOf() 3 3 15 minutes
Replace put(..) with putIfAbsent(..) 5 4 10 minutes
Replace While-Loop with Enhanced For-Loop 4 3 20 minutes
StringBuffer() to StringBuilder() 2 2 4 minutes
System Out To Logging 61 41 10 hours, 10 minutes
Use @Override Annotation 59 35 4 hours, 55 minutes
Use equals() on Primitive Objects 6 6 12 minutes
Use Functional Interfaces 274 66 22 hours, 50 minutes
Use Guard Condition 54 32 4 hours, 30 minutes
Use Multi-Catch 39 30 3 hours, 15 minutes
Use Portable Newline 2 1 2 minutes
Use Stream::collect 3 3 45 minutes
Use Stream::filter 15 13 1 hour, 15 minutes
Use Stream::map 10 9 2 hours, 30 minutes
Use StringBuilder::append 88 53 2 hours, 56 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for spring-boot

Metrics for spring-boot (created on 16.11.2018):

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.


jSparrow results for marytts

Metrics for marytts (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 2074 221 69 hours, 8 minutes
Rearrange Class Members 62 61 5 hours, 10 minutes
Reformat Code 369 369 6 hours, 9 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Call To super() 45 41 45 minutes
Remove Explicit Type Argument 92 37 1 hour, 32 minutes
Remove Unnecessary Semicolons 2 2 2 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 35 13 1 hour, 10 minutes
Rename fields 265 17 66 hours, 15 minutes
Reorder String Equality Check 104 33 17 hours, 20 minutes
Replace Assignment with Compound Operator 93 8 3 hours, 6 minutes
Replace Equality Check with isEmpty() 14 4 28 minutes
Replace For-Loop with Enhanced-For-Loop 111 67 9 hours, 15 minutes
Replace indexOf() with contains() 3 3 6 minutes
Replace Inefficient Constructors with valueOf() 22 10 1 hour, 50 minutes
Replace While-Loop with Enhanced For-Loop 8 3 40 minutes
Split Multiple Variable Declarations 127 53 4 hours, 14 minutes
Use @Override Annotation 439 161 36 hours, 35 minutes
Use equals() on Primitive Objects 4 3 8 minutes
Use Guard Condition 41 26 3 hours, 25 minutes
Use Multi-Catch 12 12 1 hour, 0 minutes
Use StringBuilder::append 389 136 12 hours, 58 minutes
Use Try-With-Resource 5 5 1 hour, 15 minutes


jSparrow results for iextrading4j

Metrics for iextrading4j (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 147 70 4 hours, 54 minutes
Rearrange Class Members 2 2 10 minutes
Reformat Code 261 261 4 hours, 21 minutes
Rename fields 57 6 14 hours, 15 minutes
Reorder String Equality Check 2 2 20 minutes
Replace For-Loop with Stream::forEach 1 1 15 minutes
Use @Override Annotation 1 1 5 minutes
Use StringBuilder::append 11 10 22 minutes


jSparrow results for tablesaw

Metrics for tablesaw (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 95 17 3 hours, 10 minutes
Rearrange Class Members 24 22 2 hours, 0 minutes
Reformat Code 200 200 3 hours, 20 minutes
Remove Boxing for String Conversions 3 3 15 minutes
Remove Explicit Type Argument 1 1 1 minute
Remove Lambda Expression Parenthesis 81 30 6 hours, 45 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 1 1 2 minutes
Replace Assignment with Compound Operator 5 2 10 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 12 5 24 minutes
Replace Expression Lambda with Method Reference 43 23 1 hour, 26 minutes
Replace For-Loop with Enhanced-For-Loop 2 2 10 minutes
Replace For-Loop with Stream::forEach 104 32 26 hours, 0 minutes
Split Multiple Variable Declarations 2 2 4 minutes
System Out To Logging 50 46 8 hours, 20 minutes
Use @Override Annotation 122 46 10 hours, 10 minutes
Use Functional Interfaces 5 4 25 minutes
Use Guard Condition 9 5 45 minutes
Use Portable Newline 1 1 1 minute
Use Stream::filter 1 1 5 minutes
Use Stream::map 8 3 2 hours, 0 minutes
Use StringBuilder::append 130 40 4 hours, 20 minutes
Use StringUtils Methods 30 10 5 hours, 0 minutes


jSparrow results for game-server

Metrics for game-server (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 435 45 14 hours, 30 minutes
Rearrange Class Members 176 44 14 hours, 40 minutes
Reformat Code 377 377 6 hours, 17 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Call To super() 15 13 15 minutes
Remove Explicit Type Argument 113 28 1 hour, 53 minutes
Remove Inherited Interfaces from Class Declaration 1 1 2 minutes
Remove Lambda Expression Parenthesis 52 31 4 hours, 20 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 2 2 4 minutes
Rename fields 2165 18 541 hours, 15 minutes
Replace Assignment with Compound Operator 2 2 4 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace Expression Lambda with Method Reference 33 18 1 hour, 6 minutes
Replace For-Loop with Enhanced-For-Loop 70 21 5 hours, 50 minutes
Replace For-Loop with Stream::forEach 41 19 10 hours, 15 minutes
Replace Nested Loops with flatMap 1 1 15 minutes
Replace put(..) with putIfAbsent(..) 3 3 6 minutes
Replace While-Loop with Enhanced For-Loop 5 4 25 minutes
Split Multiple Variable Declarations 22 9 44 minutes
StringBuffer() to StringBuilder() 3 3 6 minutes
System Out To Logging 63 20 10 hours, 30 minutes
Use @Override Annotation 2375 44 197 hours, 55 minutes
Use Functional Interfaces 42 21 3 hours, 30 minutes
Use Guard Condition 134 45 11 hours, 10 minutes
Use Multi-Catch 5 5 25 minutes
Use Stream::filter 6 5 30 minutes
Use Stream::map 3 3 45 minutes
Use StringBuilder::append 118 63 3 hours, 56 minutes


jSparrow results for soot

Metrics for soot (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 248 246 20 hours, 40 minutes
Reformat Code 1761 1761 29 hours, 21 minutes
Remove Boxing for String Conversions 23 13 1 hour, 55 minutes
Remove Explicit Call To super() 37 35 37 minutes
Remove Explicit Type Argument 1516 404 25 hours, 16 minutes
Remove Inherited Interfaces from Class Declaration 5 5 10 minutes
Remove Lambda Expression Parenthesis 296 142 24 hours, 40 minutes
Remove toString() on String 9 4 18 minutes
Remove Unnecessary Semicolons 33 15 33 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 21 13 42 minutes
Rename fields 1614 134 403 hours, 30 minutes
Reorder String Equality Check 310 77 51 hours, 40 minutes
Replace Assignment with Compound Operator 9 5 18 minutes
Replace Concatenation with Infix-Operation 7 2 35 minutes
Replace Equality Check with isEmpty() 12 9 24 minutes
Replace equals() on Enum Constants 1 1 2 minutes
Replace Expression Lambda with Method Reference 148 83 4 hours, 56 minutes
Replace For-Loop with Enhanced-For-Loop 88 42 7 hours, 20 minutes
Replace For-Loop with Stream::anyMatch 14 12 28 minutes
Replace For-Loop with Stream::findFirst 13 8 26 minutes
Replace For-Loop with Stream::forEach 594 218 148 hours, 30 minutes
Replace indexOf() with contains() 29 14 58 minutes
Replace Inefficient Constructors with valueOf() 219 48 18 hours, 15 minutes
Replace Nested Loops with flatMap 4 4 1 hour, 0 minutes
Replace put(..) with putIfAbsent(..) 14 7 28 minutes
Replace static final Collections with Collections.unmodifiable...() 7 2 1 hour, 10 minutes
Replace While-Loop with Enhanced For-Loop 208 96 17 hours, 20 minutes
Split Multiple Variable Declarations 185 85 6 hours, 10 minutes
StringBuffer() to StringBuilder() 124 107 4 hours, 8 minutes
System Out To Logging 649 106 108 hours, 10 minutes
Use @Override Annotation 4218 931 351 hours, 30 minutes
Use equals() on Primitive Objects 14 5 28 minutes
Use Functional Interfaces 1 1 5 minutes
Use Guard Condition 235 162 19 hours, 35 minutes
Use Stream::collect 9 8 2 hours, 15 minutes
Use Stream::filter 87 53 7 hours, 15 minutes
Use Stream::map 118 72 29 hours, 30 minutes
Use String Literals 11 6 55 minutes
Use StringBuilder::append 834 370 27 hours, 48 minutes
Use Try-With-Resource 8 7 2 hours, 0 minutes


jSparrow results for JCSprout

Metrics for JCSprout (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 6 6 30 minutes
Reformat Code 74 74 1 hour, 14 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Type Argument 1 1 1 minute
Remove Lambda Expression Parenthesis 5 5 25 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 3 2 6 minutes
Rename fields 6 1 1 hour, 30 minutes
Reorder String Equality Check 6 3 1 hour, 0 minutes
Replace Assignment with Compound Operator 1 1 2 minutes
Replace Expression Lambda with Method Reference 1 1 2 minutes
Replace For-Loop with Stream::forEach 2 2 30 minutes
Replace For-Loop with Stream::sum 1 1 10 minutes
System Out To Logging 79 29 13 hours, 10 minutes
Use equals() on Primitive Objects 2 1 4 minutes
Use Functional Interfaces 18 5 1 hour, 30 minutes
Use Guard Condition 3 3 15 minutes
Use String Literals 1 1 5 minutes
Use StringBuilder::append 16 12 32 minutes
Use StringUtils Methods 2 2 20 minutes


jSparrow results for lettuce-core

Metrics for lettuce-core (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 59 19 1 hour, 58 minutes
Rearrange Class Members 52 51 4 hours, 20 minutes
Reformat Code 584 584 9 hours, 44 minutes
Remove Boxing for String Conversions 3 2 15 minutes
Remove Explicit Call To super() 2 1 2 minutes
Remove Explicit Type Argument 58 31 58 minutes
Remove Inherited Interfaces from Class Declaration 5 5 10 minutes
Remove Lambda Expression Parenthesis 65 45 5 hours, 25 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 5 4 10 minutes
Rename fields 32 6 8 hours, 0 minutes
Reorder String Equality Check 46 14 7 hours, 40 minutes
Replace Equality Check with isEmpty() 5 2 10 minutes
Replace equals() on Enum Constants 1 1 2 minutes
Replace Expression Lambda with Method Reference 24 18 48 minutes
Replace For-Loop with Enhanced-For-Loop 2 2 10 minutes
Replace For-Loop with Stream::anyMatch 2 2 4 minutes
Replace For-Loop with Stream::findFirst 9 6 18 minutes
Replace For-Loop with Stream::forEach 85 51 21 hours, 15 minutes
Replace Inefficient Constructors with valueOf() 1 1 5 minutes
Replace put(..) with putIfAbsent(..) 2 2 4 minutes
Replace static final Collections with Collections.unmodifiable...() 2 2 20 minutes
Split Multiple Variable Declarations 2 2 4 minutes
StringBuffer() to StringBuilder() 5 5 10 minutes
System Out To Logging 34 22 5 hours, 40 minutes
Use @Override Annotation 180 57 15 hours, 0 minutes
Use Functional Interfaces 2 2 10 minutes
Use Guard Condition 76 54 6 hours, 20 minutes
Use Stream::collect 3 3 45 minutes
Use Stream::filter 7 7 35 minutes
Use Stream::map 7 6 1 hour, 45 minutes
Use StringBuilder::append 62 28 2 hours, 4 minutes


jSparrow results for biojava

Metrics for biojava (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 2804 387 93 hours, 28 minutes
Rearrange Class Members 215 208 17 hours, 55 minutes
Reformat Code 1075 1075 17 hours, 55 minutes
Remove Boxing for String Conversions 22 8 1 hour, 50 minutes
Remove Explicit Call To super() 71 69 1 hour, 11 minutes
Remove Explicit Type Argument 1412 381 23 hours, 32 minutes
Remove Inherited Interfaces from Class Declaration 4 4 8 minutes
Remove Lambda Expression Parenthesis 353 150 29 hours, 25 minutes
Remove Unnecessary Semicolons 11 9 11 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 82 28 2 hours, 44 minutes
Rename fields 1318 44 329 hours, 30 minutes
Reorder String Equality Check 604 111 100 hours, 40 minutes
Replace Assignment with Compound Operator 74 30 2 hours, 28 minutes
Replace Concatenation with Infix-Operation 13 3 1 hour, 5 minutes
Replace Equality Check with isEmpty() 37 20 1 hour, 14 minutes
Replace equals() on Enum Constants 53 22 1 hour, 46 minutes
Replace Expression Lambda with Method Reference 126 72 4 hours, 12 minutes
Replace For-Loop with Enhanced-For-Loop 64 38 5 hours, 20 minutes
Replace For-Loop with Stream::anyMatch 18 12 36 minutes
Replace For-Loop with Stream::collect(Collectors.joining()) 1 1 10 minutes
Replace For-Loop with Stream::findFirst 28 18 56 minutes
Replace For-Loop with Stream::forEach 563 195 140 hours, 45 minutes
Replace For-Loop with Stream::sum 1 1 10 minutes
Replace indexOf() with contains() 8 6 16 minutes
Replace Inefficient Constructors with valueOf() 133 19 11 hours, 5 minutes
Replace Nested Loops with flatMap 5 5 1 hour, 15 minutes
Replace put(..) with putIfAbsent(..) 9 6 18 minutes
Replace static final Collections with Collections.unmodifiable...() 4 2 40 minutes
Replace While-Loop with Enhanced For-Loop 11 6 55 minutes
Split Multiple Variable Declarations 205 78 6 hours, 50 minutes
StringBuffer() to StringBuilder() 60 42 2 hours, 0 minutes
System Out To Logging 982 226 163 hours, 40 minutes
Use @Override Annotation 1 1 5 minutes
Use equals() on Primitive Objects 21 12 42 minutes
Use Functional Interfaces 62 28 5 hours, 10 minutes
Use Guard Condition 129 89 10 hours, 45 minutes
Use Multi-Catch 32 26 2 hours, 40 minutes
Use Portable Newline 28 15 28 minutes
Use Stream::collect 12 10 3 hours, 0 minutes
Use Stream::filter 55 30 4 hours, 35 minutes
Use Stream::map 47 37 11 hours, 45 minutes
Use String Literals 5 3 25 minutes
Use StringBuilder::append 1103 349 36 hours, 46 minutes
Use Try-With-Resource 4 4 1 hour, 0 minutes


jSparrow results for orientdb

Metrics for orientdb (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 16047 1106 534 hours, 54 minutes
Rearrange Class Members 237 236 19 hours, 45 minutes
Reformat Code 2523 2523 42 hours, 3 minutes
Remove Boxing for String Conversions 17 13 1 hour, 25 minutes
Remove Explicit Call To super() 34 32 34 minutes
Remove Explicit Type Argument 1580 483 26 hours, 20 minutes
Remove Inherited Interfaces from Class Declaration 22 20 44 minutes
Remove Lambda Expression Parenthesis 695 278 57 hours, 55 minutes
Remove toString() on String 10 8 20 minutes
Remove Unnecessary Semicolons 284 10 4 hours, 44 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 461 222 15 hours, 22 minutes
Rename fields 3687 24 921 hours, 45 minutes
Reorder String Equality Check 533 166 88 hours, 50 minutes
Replace Assignment with Compound Operator 12 8 24 minutes
Replace Equality Check with isEmpty() 100 58 3 hours, 20 minutes
Replace equals() on Enum Constants 128 28 4 hours, 16 minutes
Replace Expression Lambda with Method Reference 401 204 13 hours, 22 minutes
Replace For-Loop with Enhanced-For-Loop 47 38 3 hours, 55 minutes
Replace For-Loop with Stream::anyMatch 45 24 1 hour, 30 minutes
Replace For-Loop with Stream::findFirst 39 22 1 hour, 18 minutes
Replace For-Loop with Stream::forEach 1054 345 263 hours, 30 minutes
Replace indexOf() with contains() 7 6 14 minutes
Replace Inefficient Constructors with valueOf() 73 16 6 hours, 5 minutes
Replace Nested Loops with flatMap 1 1 15 minutes
Replace put(..) with putIfAbsent(..) 2 2 4 minutes
Replace While-Loop with Enhanced For-Loop 4 3 20 minutes
Split Multiple Variable Declarations 13 11 26 minutes
StringBuffer() to StringBuilder() 8 7 16 minutes
Use @Override Annotation 3618 732 301 hours, 30 minutes
Use equals() on Primitive Objects 8 6 16 minutes
Use Functional Interfaces 115 56 9 hours, 35 minutes
Use Guard Condition 542 336 45 hours, 10 minutes
Use Multi-Catch 149 30 12 hours, 25 minutes
Use Portable Newline 25 9 25 minutes
Use Stream::collect 11 7 2 hours, 45 minutes
Use Stream::filter 134 66 11 hours, 10 minutes
Use Stream::map 71 47 17 hours, 45 minutes
Use String Literals 3 2 15 minutes
Use StringBuilder::append 2171 615 72 hours, 22 minutes
Use Try-With-Resource 6 4 1 hour, 30 minutes


jSparrow results for openhab2-addons

Metrics for openhab2-addons (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 9 3 18 minutes
Rearrange Class Members 456 453 38 hours, 0 minutes
Reformat Code 2660 2660 44 hours, 20 minutes
Remove Boxing for String Conversions 3 3 15 minutes
Remove Deprecated Date Constructs 1 1 1 minute
Remove Explicit Call To super() 38 35 38 minutes
Remove Explicit Type Argument 175 107 2 hours, 55 minutes
Remove Inherited Interfaces from Class Declaration 16 16 32 minutes
Remove Lambda Expression Parenthesis 386 193 32 hours, 10 minutes
Remove toString() on String 22 9 44 minutes
Remove Unnecessary Semicolons 6 4 6 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 128 101 4 hours, 16 minutes
Rename fields 286 27 71 hours, 30 minutes
Reorder String Equality Check 533 80 88 hours, 50 minutes
Replace Assignment with Compound Operator 7 7 14 minutes
Replace Concatenation with Infix-Operation 19 4 1 hour, 35 minutes
Replace Equality Check with isEmpty() 28 17 56 minutes
Replace equals() on Enum Constants 127 60 4 hours, 14 minutes
Replace Expression Lambda with Method Reference 189 124 6 hours, 18 minutes
Replace For-Loop with Enhanced-For-Loop 20 18 1 hour, 40 minutes
Replace For-Loop with Stream::anyMatch 9 7 18 minutes
Replace For-Loop with Stream::collect(Collectors.joining()) 1 1 10 minutes
Replace For-Loop with Stream::findFirst 39 25 1 hour, 18 minutes
Replace For-Loop with Stream::forEach 441 225 110 hours, 15 minutes
Replace indexOf() with contains() 5 4 10 minutes
Replace Inefficient Constructors with valueOf() 20 9 1 hour, 40 minutes
Replace Nested Loops with flatMap 2 2 30 minutes
Replace put(..) with putIfAbsent(..) 4 4 8 minutes
Replace static final Collections with Collections.unmodifiable...() 7 7 1 hour, 10 minutes
Replace While-Loop with Enhanced For-Loop 3 3 15 minutes
Split Multiple Variable Declarations 26 20 52 minutes
StringBuffer() to StringBuilder() 5 5 10 minutes
System Out To Logging 618 282 103 hours, 0 minutes
Use @Override Annotation 21 9 1 hour, 45 minutes
Use equals() on Primitive Objects 26 16 52 minutes
Use Functional Interfaces 64 36 5 hours, 20 minutes
Use Guard Condition 641 405 53 hours, 25 minutes
Use Multi-Catch 22 19 1 hour, 50 minutes
Use Optional::ifPresent 2 2 4 minutes
Use Portable Newline 24 4 24 minutes
Use Stream::collect 5 5 1 hour, 15 minutes
Use Stream::filter 48 38 4 hours, 0 minutes
Use Stream::map 38 30 9 hours, 30 minutes
Use String Literals 11 6 55 minutes
Use StringBuilder::append 942 443 31 hours, 24 minutes
Use StringUtils Methods 7 2 1 hour, 10 minutes
Use Try-With-Resource 4 3 1 hour, 0 minutes


jSparrow results for citrus

Metrics for citrus (created on 16.11.2018):

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.


jSparrow results for HL7Receiver

Metrics for HL7Receiver (created on 16.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 501 72 16 hours, 42 minutes
Rearrange Class Members 10 10 50 minutes
Reformat Code 161 161 2 hours, 41 minutes
Remove Explicit Call To super() 9 9 9 minutes
Remove Lambda Expression Parenthesis 26 13 2 hours, 10 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 3 2 6 minutes
Rename fields 12 2 3 hours, 0 minutes
Reorder String Equality Check 6 5 1 hour, 0 minutes
Replace Equality Check with isEmpty() 2 1 4 minutes
Replace equals() on Enum Constants 9 2 18 minutes
Replace Expression Lambda with Method Reference 48 16 1 hour, 36 minutes
Replace For-Loop with Enhanced-For-Loop 2 2 10 minutes
Replace For-Loop with Stream::forEach 29 14 7 hours, 15 minutes
Replace indexOf() with contains() 1 1 2 minutes
System Out To Logging 19 7 3 hours, 10 minutes
Use @Override Annotation 50 13 4 hours, 10 minutes
Use equals() on Primitive Objects 1 1 2 minutes
Use Functional Interfaces 4 1 20 minutes
Use Guard Condition 13 7 1 hour, 5 minutes
Use Stream::collect 2 2 30 minutes
Use Stream::filter 8 7 40 minutes
Use StringBuilder::append 106 42 3 hours, 32 minutes
Use StringUtils Methods 71 30 11 hours, 50 minutes
Use Try-With-Resource 1 1 15 minutes


jSparrow results for getting-started-java

Metrics for getting-started-java (created on 27.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 18 18 1 hour, 30 minutes
Reformat Code 153 153 2 hours, 33 minutes
Remove Explicit Type Argument 7 7 7 minutes
Remove Lambda Expression Parenthesis 23 17 1 hour, 55 minutes
Reorder String Equality Check 72 30 12 hours, 0 minutes
Replace For-Loop with Stream::forEach 28 16 7 hours, 0 minutes
StringBuffer() to StringBuilder() 10 10 20 minutes
Use Guard Condition 3 3 15 minutes
Use StringBuilder::append 62 34 2 hours, 4 minutes
Use StringUtils Methods 29 19 4 hours, 50 minutes


jSparrow results for vert.x

Metrics for vert.x (created on 22.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 86 26 2 hours, 52 minutes
Rearrange Class Members 55 54 4 hours, 35 minutes
Reformat Code 407 407 6 hours, 47 minutes
Remove Explicit Call To super() 3 3 3 minutes
Remove Explicit Type Argument 3 2 3 minutes
Remove Inherited Interfaces from Class Declaration 2 2 4 minutes
Remove Lambda Expression Parenthesis 187 52 15 hours, 35 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 45 16 1 hour, 30 minutes
Rename fields 8 3 2 hours, 0 minutes
Reorder String Equality Check 31 12 5 hours, 10 minutes
Replace Equality Check with isEmpty() 7 3 14 minutes
Replace equals() on Enum Constants 1 1 2 minutes
Replace Expression Lambda with Method Reference 17 13 34 minutes
Replace For-Loop with Stream::anyMatch 3 2 6 minutes
Replace For-Loop with Stream::findFirst 4 2 8 minutes
Replace For-Loop with Stream::forEach 54 31 13 hours, 30 minutes
Split Multiple Variable Declarations 3 3 6 minutes
System Out To Logging 192 38 32 hours, 0 minutes
Use @Override Annotation 386 62 32 hours, 10 minutes
Use Functional Interfaces 1 1 5 minutes
Use Guard Condition 66 39 5 hours, 30 minutes
Use Stream::filter 4 4 20 minutes
Use Stream::map 1 1 15 minutes
Use StringBuilder::append 123 68 4 hours, 6 minutes


jSparrow results for NetLicensingClient-java (Java 8)

Metrics for NetLicensingClient-java (Java 8) (created on 8.2.2019):

Total Java file* count 95
Number of files changed 77
Total number of issues fixed 167
jSparrow execution time 3 minutes, 59 seconds
Total time saved 7 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 NetLicensingClient-java (Java 8).
Rule NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 4 4 20 minutes
Reformat Code 77 77 1 hour, 17 minutes
Remove Explicit Type Argument 25 16 25 minutes
Remove Lambda Expression Parenthesis 6 3 30 minutes
Replace Concatenation with Infix-Operation 3 2 15 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace Expression Lambda with Method Reference 1 1 2 minutes
Replace For-Loop with Stream::forEach 6 3 1 hour, 30 minutes
Replace put(..) with putIfAbsent(..) 1 1 2 minutes
System Out To Logging 10 9 1 hour, 40 minutes
Use Guard Condition 1 1 5 minutes
Use Stream::filter 1 1 5 minutes
Use StringBuilder::append 31 12 1 hour, 2 minutes


jSparrow results for NetLicensingClient-java (Java 7)

Metrics for NetLicensingClient-java (Java 7) (created on 11.2.2019):

Total Java file* count 95
Number of files changed 77
Total number of issues fixed 151
jSparrow execution time 6 minutes, 52 seconds
Total time saved 5 hours, 5 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 NetLicensingClient-java (Java 7).
Rule NameIssues FixedFiles ChangedTime saved
Rearrange Class Members 4 4 20 minutes
Reformat Code 77 77 1 hour, 17 minutes
Remove Explicit Type Argument 24 16 24 minutes
Replace Concatenation with Infix-Operation 3 2 15 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
System Out To Logging 10 9 1 hour, 40 minutes
Use Guard Condition 1 1 5 minutes
Use StringBuilder::append 31 12 1 hour, 2 minutes


jSparrow results for cucumber-jvm

Metrics for cucumber-jvm (created on 23.11.2018):

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 NameIssues FixedFiles ChangedTime saved
Add Parenthesis to Control Statements 30 12 1 hour, 0 minutes
Rearrange Class Members 27 26 2 hours, 15 minutes
Reformat Code 260 260 4 hours, 20 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Explicit Type Argument 152 61 2 hours, 32 minutes
Remove Unnecessary Semicolons 1 1 1 minute
Remove Unnecessary Thrown Exceptions on Method Signatures 8 6 16 minutes
Rename fields 3 1 45 minutes
Reorder String Equality Check 41 5 6 hours, 50 minutes
Replace For-Loop with Enhanced-For-Loop 1 1 5 minutes
Replace static final Collections with Collections.unmodifiable...() 4 3 40 minutes
StringBuffer() to StringBuilder() 1 1 2 minutes
Use @Override Annotation 36 14 3 hours, 0 minutes
Use equals() on Primitive Objects 1 1 2 minutes
Use Guard Condition 22 17 1 hour, 50 minutes
Use Multi-Catch 6 5 30 minutes
Use Portable Newline 2 2 2 minutes
Use StringBuilder::append 60 38 2 hours, 0 minutes