# Statistics of Open Source Projects

For our testing we measured open source projects on GitHub.

The following statistics show results on those projects. The jSparrow Eclipse Plugin has been used to produce the results.

Summary of Statistics

This is a summary of all statistics seen below. For a summary table of the individual rules, have a look at the Statistics Summary page.

Total Java file* count 19792
Number of files changed 12581
Total number of issues fixed 228616
Total time saved 15997 hours, 33 minutes
Total jSparrow run time 20 minutes, 34 seconds
* One Java file could contain more than one Java class.

# Cleanup code with plugin

To see your statistics, install jSparrow by dropping this button to your Eclipse IDE workspace:

Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client (opens new window)

Need help? Check out or installation guide.

Individual Statistics

Here, the statistics for each open source project can be seen individually. Please click on the tab headers to switch between projects.

jSparrow results for cucumber-jvm

Metrics for cucumber-jvm (created on 25.2.2021):

Total Java file* count 1509
Number of files changed 392
Total number of issues fixed 6697
Total time saved 406 hours, 37 minutes
jSparrow run time 30 seconds
* 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 Braces to Control Statements 48 18 1 hour, 36 minutes
Collapse If Statements 2 2 10 minutes
Hide Default Constructor In Utility Classes 17 17 1 hour, 25 minutes
Make Fields And Variables Final 3155 328 262 hours, 55 minutes
Remove Boxing for String Conversions 3 3 15 minutes
Remove Collection::addAll 2 2 4 minutes
Remove Explicit Type Argument 5 2 5 minutes
Remove Lambda Expression Braces 43 23 3 hours, 35 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 14 11 28 minutes
Remove Unused Parameters in Private Methods 5 4 25 minutes
Reorder Modifiers 4 3 8 minutes
Reorder String Equality Check 8 5 1 hour, 20 minutes
Replace Assignment with Compound Operator 2 1 4 minutes
Replace Expression Lambda with Method Reference 34 19 1 hour, 8 minutes
Replace For-Loop with Iterable::forEach 70 39 17 hours, 30 minutes
Replace For-Loop with Stream::Match 1 1 2 minutes
Replace put(..) with putIfAbsent(..) 5 3 10 minutes
Replace static final Collections with Collections.unmodifiable...() 5 4 50 minutes
Replace While-Loop with Enhanced For-Loop 1 1 5 minutes
Split Multiple Variable Declarations 1 1 2 minutes
Use @Override Annotation 32 14 2 hours, 40 minutes
Use BufferedReader::lines 1 1 5 minutes
Use Collections Singleton List 4 2 8 minutes
Use Factory Methods for Collections 8 5 40 minutes
Use Guard Condition 31 27 2 hours, 35 minutes
Use Local Variable Type Inference 2723 303 90 hours, 46 minutes
Use Portable Newline 3 3 3 minutes
Use SecureRandom 1 1 5 minutes
Use Stream::filter 3 3 15 minutes
Use Stream::map 7 7 1 hour, 45 minutes
Use StringBuilder::append 459 138 15 hours, 18 minutes
* One Java file could contain more than one Java class.


jSparrow results for jenkins-core

Metrics for jenkins-core (created on 28.1.2021):

Total Java file* count 1323
Number of files changed 937
Total number of issues fixed 13675
Total time saved 1034 hours, 43 minutes
jSparrow run time 2 minutes, 44 seconds
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on jenkins-core.
Rule NameIssues FixedFiles ChangedTime saved
Add Braces to Control Statements 2293 390 76 hours, 26 minutes
Collapse If Statements 54 45 4 hours, 30 minutes
Create Temp Files Using Java NIO 19 15 1 hour, 35 minutes
Hide Default Constructor In Utility Classes 46 46 3 hours, 50 minutes
Make Fields And Variables Final 7138 731 594 hours, 50 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Collection::addAll 5 4 10 minutes
Remove Explicit Call To super() 6 5 6 minutes
Remove Explicit Type Argument 7 5 7 minutes
Remove Inherited Interfaces from Class Declaration 10 6 20 minutes
Remove Lambda Expression Braces 304 144 25 hours, 20 minutes
Remove Null-Checks Before Instanceof 1 1 5 minutes
Remove Redundant Type Casts 11 11 55 minutes
Remove Unnecessary Semicolons 4 4 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 158 75 5 hours, 16 minutes
Remove Unused Parameters in Private Methods 4 4 20 minutes
Reorder Modifiers 148 71 4 hours, 56 minutes
Reorder String Equality Check 114 58 19 hours
Replace Assignment with Compound Operator 5 3 10 minutes
Replace Equality Check with isEmpty() 47 31 1 hour, 34 minutes
Replace equals() on Enum Constants 14 7 1 hour, 10 minutes
Replace Expression Lambda with Method Reference 84 51 2 hours, 48 minutes
Replace For-Loop with Iterable::forEach 384 155 96 hours
Replace For-Loop with Stream::findFirst 52 30 1 hour, 44 minutes
Replace For-Loop with Stream::Match 28 22 56 minutes
Replace JUnit Timeout Annotation Property with assertTimeout 3 1 15 minutes
Replace Map::get by Map::getOrDefault 1 1 2 minutes
Replace put(..) with putIfAbsent(..) 8 6 16 minutes
Replace static final Collections with Collections.unmodifiable...() 3 3 30 minutes
Reuse Random Objects 4 3 20 minutes
Split Multiple Variable Declarations 53 35 1 hour, 46 minutes
Use @Override Annotation 1403 368 116 hours, 55 minutes
Use BufferedReader::lines 2 2 10 minutes
Use Comparator Methods 1 1 5 minutes
Use Functional Interfaces 102 55 8 hours, 30 minutes
Use Guard Condition 157 106 13 hours, 5 minutes
Use Multi Catch 2 2 10 minutes
Use SecureRandom 7 7 35 minutes
Use Stream::collect 32 21 8 hours
Use Stream::filter 82 57 6 hours, 50 minutes
Use Stream::map 26 22 6 hours, 30 minutes
Use String Literals 1 1 5 minutes
Use StringBuilder::append 851 310 28 hours, 22 minutes
* One Java file could contain more than one Java class.


jSparrow results for neo4j-community

Metrics for neo4j-community (created on 10.2.2021):

Total Java file* count 5641
Number of files changed 3541
Total number of issues fixed 81621
Total time saved 5104 hours, 10 minutes
jSparrow run time 5 minutes, 39 seconds
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on neo4j-community.
Rule NameIssues FixedFiles ChangedTime saved
Collapse If Statements 56 48 4 hours, 40 minutes
Hide Default Constructor In Utility Classes 92 92 7 hours, 40 minutes
Make Fields And Variables Final 44173 3213 3681 hours, 5 minutes
Remove Boxing for String Conversions 22 14 1 hour, 50 minutes
Remove Collection::addAll 16 11 32 minutes
Remove Explicit Call To super() 28 26 28 minutes
Remove Explicit Type Argument 6 5 6 minutes
Remove Inherited Interfaces from Class Declaration 7 7 14 minutes
Remove Lambda Expression Braces 284 198 23 hours, 40 minutes
Remove Redundant Type Casts 57 23 4 hours, 45 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 264 90 8 hours, 48 minutes
Remove Unused Parameters in Private Methods 16 10 1 hour, 20 minutes
Reorder String Equality Check 73 40 12 hours, 10 minutes
Replace Assignment with Compound Operator 10 7 20 minutes
Replace Equality Check with isEmpty() 1 1 2 minutes
Replace equals() on Enum Constants 29 20 2 hours, 25 minutes
Replace Expression Lambda with Method Reference 130 77 4 hours, 20 minutes
Replace For-Loop with Enhanced-For-Loop 5 4 25 minutes
Replace For-Loop with Iterable::forEach 427 256 106 hours, 45 minutes
Replace For-Loop with Stream::findFirst 8 7 16 minutes
Replace For-Loop with Stream::Match 7 7 14 minutes
Replace indexOf() with contains() 1 1 2 minutes
Replace put(..) with putIfAbsent(..) 4 4 8 minutes
Replace static final Collections with Collections.unmodifiable...() 6 5 1 hour
Replace While-Loop with Enhanced For-Loop 4 4 20 minutes
Reuse Random Objects 9 6 45 minutes
Split Multiple Variable Declarations 67 23 2 hours, 14 minutes
Use @Override Annotation 89 32 7 hours, 25 minutes
Use BufferedReader::lines 1 1 5 minutes
Use Collections Singleton List 84 27 2 hours, 48 minutes
Use equals() on Primitive Objects 2 1 4 minutes
Use Factory Methods for Collections 8 2 40 minutes
Use Files.writeString 1 1 5 minutes
Use Functional Interfaces 2 2 10 minutes
Use Guard Condition 577 414 48 hours, 5 minutes
Use Local Variable Type Inference 32953 2819 1098 hours, 26 minutes
Use Multi Catch 1 1 5 minutes
Use Optional::filter 1 1 2 minutes
Use Optional::ifPresent 3 3 6 minutes
Use Optional::map 3 3 6 minutes
Use Portable Newline 4 3 4 minutes
Use SecureRandom 23 18 1 hour, 55 minutes
Use Stream::filter 26 21 2 hours, 10 minutes
Use Stream::map 17 14 4 hours, 15 minutes
Use String Join 1 1 5 minutes
Use String Literals 2 1 10 minutes
Use StringBuilder::append 2005 864 66 hours, 50 minutes
Use Try-With-Resource 16 7 4 hours
* One Java file could contain more than one Java class.


jSparrow results for orientdb-core

Metrics for orientdb-core (created on 1.2.2021):

Total Java file* count 2503
Number of files changed 1795
Total number of issues fixed 38067
Total time saved 2438 hours, 35 minutes
jSparrow run time 3 minutes, 1 second
* 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-core.
Rule NameIssues FixedFiles ChangedTime saved
Add Braces to Control Statements 11864 760 395 hours, 28 minutes
Collapse If Statements 156 86 13 hours
Hide Default Constructor In Utility Classes 58 58 4 hours, 50 minutes
Insert Break Statements in For-loops 2 1 4 minutes
Make Fields And Variables Final 14672 1331 1222 hours, 40 minutes
Remove Boxing for String Conversions 13 11 1 hour, 5 minutes
Remove Collection::addAll 34 15 1 hour, 8 minutes
Remove Explicit Call To super() 24 22 24 minutes
Remove Explicit Type Argument 1574 339 26 hours, 14 minutes
Remove Inherited Interfaces from Class Declaration 10 9 20 minutes
Remove Lambda Expression Braces 556 223 46 hours, 20 minutes
Remove Modifiers in Interface Properties 625 41 10 hours, 25 minutes
Remove Null-Checks Before Instanceof 53 30 4 hours, 25 minutes
Remove Redundant Type Casts 94 55 7 hours, 50 minutes
Remove toString() on String 6 5 12 minutes
Remove Unnecessary Semicolons 297 9 4 hours, 57 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 401 213 13 hours, 22 minutes
Remove Unused Parameters in Private Methods 72 42 6 hours
Reorder String Equality Check 428 107 71 hours, 20 minutes
Replace Assignment with Compound Operator 14 11 28 minutes
Replace Collection.sort with List.sort 8 6 16 minutes
Replace Equality Check with isEmpty() 68 41 2 hours, 16 minutes
Replace equals() on Enum Constants 92 22 7 hours, 40 minutes
Replace Expression Lambda with Method Reference 351 171 11 hours, 42 minutes
Replace For-Loop with Enhanced-For-Loop 33 28 2 hours, 45 minutes
Replace For-Loop with Iterable::forEach 863 297 215 hours, 45 minutes
Replace For-Loop with Stream::findFirst 2 2 4 minutes
Replace For-Loop with Stream::Match 75 30 2 hours, 30 minutes
Replace indexOf() with contains() 7 4 14 minutes
Replace Inefficient Constructors with valueOf() 84 16 7 hours
Replace Nested Loops with flatMap 2 2 30 minutes
Replace put(..) with putIfAbsent(..) 2 2 4 minutes
Replace While-Loop with Enhanced For-Loop 40 4 3 hours, 20 minutes
Reuse Random Objects 50 19 4 hours, 10 minutes
Split Multiple Variable Declarations 5 3 10 minutes
StringBuffer() to StringBuilder() 6 5 12 minutes
Use @Override Annotation 2245 497 187 hours, 5 minutes
Use Collections Singleton List 44 13 1 hour, 28 minutes
Use equals() on Primitive Objects 8 6 16 minutes
Use Functional Interfaces 59 34 4 hours, 55 minutes
Use Guard Condition 438 278 36 hours, 30 minutes
Use Multi Catch 125 17 10 hours, 25 minutes
Use Optional::ifPresent 1 1 2 minutes
Use Portable Newline 14 5 14 minutes
Use Predefined Standard Charset 7 3 14 minutes
Use SecureRandom 147 46 12 hours, 15 minutes
Use Stream::collect 7 5 1 hour, 45 minutes
Use Stream::filter 84 43 7 hours
Use Stream::map 41 30 10 hours, 15 minutes
Use String Join 3 2 15 minutes
Use String Literals 6 3 30 minutes
Use StringBuilder::append 2183 554 72 hours, 46 minutes
Use Try-With-Resource 14 6 3 hours, 30 minutes
* One Java file could contain more than one Java class.


jSparrow results for rocketmq

Metrics for rocketmq (created on 25.2.2021):

Total Java file* count 984
Number of files changed 714
Total number of issues fixed 10827
Total time saved 844 hours, 59 minutes
jSparrow run time 43 seconds
* 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 Braces to Control Statements 494 86 16 hours, 28 minutes
Avoid Concatenation in Logging Statements 4 3 20 minutes
Collapse If Statements 54 38 4 hours, 30 minutes
Create Temp Files Using Java NIO 1 1 5 minutes
Hide Default Constructor In Utility Classes 69 69 5 hours, 45 minutes
Make Fields And Variables Final 7744 607 645 hours, 20 minutes
Remove Boxing for String Conversions 3 3 15 minutes
Remove Collection::addAll 10 9 20 minutes
Remove Explicit Call To super() 16 13 16 minutes
Remove Explicit Type Argument 563 231 9 hours, 23 minutes
Remove Inherited Interfaces from Class Declaration 12 12 24 minutes
Remove Lambda Expression Braces 136 86 11 hours, 20 minutes
Remove Modifiers in Interface Properties 5 2 5 minutes
Remove Null-Checks Before Instanceof 11 8 55 minutes
Remove Redundant Type Casts 5 4 25 minutes
Remove toString() on String 2 2 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 22 8 44 minutes
Remove Unused Parameters in Private Methods 61 9 5 hours, 5 minutes
Reorder Modifiers 127 46 4 hours, 14 minutes
Reorder String Equality Check 26 12 4 hours, 20 minutes
Replace Assignment with Compound Operator 6 6 12 minutes
Replace Collection.sort with List.sort 1 1 2 minutes
Replace Equality Check with isEmpty() 6 6 12 minutes
Replace equals() on Enum Constants 36 8 3 hours
Replace Expression Lambda with Method Reference 38 29 1 hour, 16 minutes
Replace For-Loop with Enhanced-For-Loop 10 10 50 minutes
Replace For-Loop with Iterable::forEach 236 119 59 hours
Replace For-Loop with Stream::findFirst 8 4 16 minutes
Replace For-Loop with Stream::Match 4 4 8 minutes
Replace Inefficient Constructors with valueOf() 23 5 1 hour, 55 minutes
Replace put(..) with putIfAbsent(..) 1 1 2 minutes
Replace While-Loop with Enhanced For-Loop 7 6 35 minutes
Reuse Random Objects 4 4 20 minutes
Split Multiple Variable Declarations 13 8 26 minutes
StringBuffer() to StringBuilder() 14 11 28 minutes
Use @Override Annotation 196 53 16 hours, 20 minutes
Use equals() on Primitive Objects 2 2 4 minutes
Use Functional Interfaces 130 70 10 hours, 50 minutes
Use Guard Condition 132 70 11 hours
Use Multi Catch 7 5 35 minutes
Use Portable Newline 4 2 4 minutes
Use Predefined Standard Charset 10 8 20 minutes
Use SecureRandom 21 15 1 hour, 45 minutes
Use Stream::collect 1 1 15 minutes
Use Stream::filter 19 16 1 hour, 35 minutes
Use Stream::map 24 18 6 hours
Use StringBuilder::append 508 190 16 hours, 56 minutes
Use Try-With-Resource 1 1 15 minutes
* One Java file could contain more than one Java class.


jSparrow results for spring-boot

Metrics for spring-boot (created on 1.2.2021):

Total Java file* count 634
Number of files changed 339
Total number of issues fixed 2237
Total time saved 187 hours, 19 minutes
jSparrow run time 18 seconds
* 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.
* One Java file could contain more than one Java class.


jSparrow results for vert.x

Metrics for vert.x (created on 25.2.2021):

Total Java file* count 850
Number of files changed 557
Total number of issues fixed 13770
Total time saved 1118 hours, 7 minutes
jSparrow run time 1 minute, 33 seconds
* 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 Braces to Control Statements 144 46 4 hours, 48 minutes
Collapse If Statements 27 21 2 hours, 15 minutes
Create Temp Files Using Java NIO 6 6 30 minutes
Hide Default Constructor In Utility Classes 51 51 4 hours, 15 minutes
Make Fields And Variables Final 10001 472 833 hours, 25 minutes
Remove Boxing for String Conversions 23 13 1 hour, 55 minutes
Remove Collection::addAll 1 1 2 minutes
Remove Explicit Call To super() 24 20 24 minutes
Remove Explicit Type Argument 2 2 2 minutes
Remove Inherited Interfaces from Class Declaration 5 3 10 minutes
Remove Lambda Expression Braces 1701 135 141 hours, 45 minutes
Remove Redundant Type Casts 13 7 1 hour, 5 minutes
Remove toString() on String 1 1 2 minutes
Remove Unnecessary Semicolons 5 4 5 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 146 45 4 hours, 52 minutes
Remove Unused Parameters in Private Methods 16 10 1 hour, 20 minutes
Reorder Modifiers 39 10 1 hour, 18 minutes
Reorder String Equality Check 54 27 9 hours
Replace Collection.sort with List.sort 2 1 4 minutes
Replace Equality Check with isEmpty() 8 3 16 minutes
Replace equals() on Enum Constants 3 2 15 minutes
Replace Expression Lambda with Method Reference 68 37 2 hours, 16 minutes
Replace For-Loop with Enhanced-For-Loop 3 3 15 minutes
Replace For-Loop with Iterable::forEach 96 54 24 hours
Replace For-Loop with Stream::findFirst 2 2 4 minutes
Replace For-Loop with Stream::Match 5 4 10 minutes
Replace Inefficient Constructors with valueOf() 1 1 5 minutes
Reuse Random Objects 19 7 1 hour, 35 minutes
Split Multiple Variable Declarations 12 9 24 minutes
StringBuffer() to StringBuilder() 2 2 4 minutes
Use @Override Annotation 611 123 50 hours, 55 minutes
Use Arrays Stream 1 1 5 minutes
Use Collections Singleton List 15 6 30 minutes
Use equals() on Primitive Objects 3 2 6 minutes
Use Functional Interfaces 21 5 1 hour, 45 minutes
Use Guard Condition 90 60 7 hours, 30 minutes
Use Portable Newline 2 1 2 minutes
Use Predefined Standard Charset 1 1 2 minutes
Use SecureRandom 19 12 1 hour, 35 minutes
Use Stream::filter 9 8 45 minutes
Use Stream::map 4 4 1 hour
Use String Join 1 1 5 minutes
Use StringBuilder::append 513 142 17 hours, 6 minutes
* One Java file could contain more than one Java class.


jSparrow results for biojava

Metrics for biojava (created on 25.2.2021):

Total Java file* count 1321
Number of files changed 1114
Total number of issues fixed 25981
Total time saved 1940 hours, 42 minutes
jSparrow run time 1 minute, 32 seconds
* 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 Braces to Control Statements 2852 406 95 hours, 4 minutes
Avoid Concatenation in Logging Statements 313 77 26 hours, 5 minutes
Collapse If Statements 94 53 7 hours, 50 minutes
Create Temp Files Using Java NIO 27 12 2 hours, 15 minutes
Hide Default Constructor In Utility Classes 98 98 8 hours, 10 minutes
Insert Break Statements in For-loops 2 1 4 minutes
Make Fields And Variables Final 15731 940 1310 hours, 55 minutes
Remove Boxing for String Conversions 24 10 2 hours
Remove Collection::addAll 13 9 26 minutes
Remove Explicit Call To super() 71 69 1 hour, 11 minutes
Remove Explicit Type Argument 1601 414 26 hours, 41 minutes
Remove Inherited Interfaces from Class Declaration 4 4 8 minutes
Remove Lambda Expression Braces 416 181 34 hours, 40 minutes
Remove Modifiers in Interface Properties 561 78 9 hours, 21 minutes
Remove Redundant Type Casts 6 5 30 minutes
Remove Unnecessary Semicolons 17 13 17 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 85 30 2 hours, 50 minutes
Remove Unused Parameters in Private Methods 40 17 3 hours, 20 minutes
Reorder Modifiers 156 95 5 hours, 12 minutes
Reorder String Equality Check 632 121 105 hours, 20 minutes
Replace Assignment with Compound Operator 74 30 2 hours, 28 minutes
Replace Collection.sort with List.sort 21 18 42 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 62 29 5 hours, 10 minutes
Replace Expression Lambda with Method Reference 160 97 5 hours, 20 minutes
Replace For-Loop with Enhanced-For-Loop 62 38 5 hours, 10 minutes
Replace For-Loop with Iterable::forEach 660 224 165 hours
Replace For-Loop with Stream::findFirst 31 20 1 hour, 2 minutes
Replace For-Loop with Stream::Match 29 21 58 minutes
Replace For-Loop with Stream::sum 1 1 10 minutes
Replace indexOf() with contains() 8 6 16 minutes
Replace Inefficient Constructors with valueOf() 134 20 11 hours, 10 minutes
Replace JUnit Expected Annotation Property with assertThrows 2 2 10 minutes
Replace Nested Loops with flatMap 6 6 1 hour, 30 minutes
Replace put(..) with putIfAbsent(..) 10 7 20 minutes
Replace static final Collections with Collections.unmodifiable...() 4 2 40 minutes
Replace While-Loop with Enhanced For-Loop 11 6 55 minutes
Reuse Random Objects 2 2 10 minutes
Split Multiple Variable Declarations 266 104 8 hours, 52 minutes
StringBuffer() to StringBuilder() 57 40 1 hour, 54 minutes
Use @Override Annotation 1 1 5 minutes
Use BufferedReader::lines 17 12 1 hour, 25 minutes
Use Collections Singleton List 14 10 28 minutes
Use Comparator Methods 1 1 5 minutes
Use equals() on Primitive Objects 14 10 28 minutes
Use Files.newBufferedReader 5 5 25 minutes
Use Files.newBufferedWriter 1 1 5 minutes
Use Functional Interfaces 61 28 5 hours, 5 minutes
Use Guard Condition 141 98 11 hours, 45 minutes
Use Multi Catch 27 23 2 hours, 15 minutes
Use Offset Based String Methods 1 1 5 minutes
Use Portable Newline 28 15 28 minutes
Use Predefined Standard Charset 1 1 2 minutes
Use SecureRandom 4 4 20 minutes
Use Stream::collect 13 11 3 hours, 15 minutes
Use Stream::filter 70 38 5 hours, 50 minutes
Use Stream::map 51 41 12 hours, 45 minutes
Use String Literals 5 3 25 minutes
Use StringBuilder::append 1128 381 37 hours, 36 minutes
Use Try-With-Resource 5 5 1 hour, 15 minutes
* One Java file could contain more than one Java class.


jSparrow results for dbeaver

Metrics for dbeaver (created on 16.2.2021):

Total Java file* count 4053
Number of files changed 2601
Total number of issues fixed 28463
Total time saved 2329 hours, 49 minutes
jSparrow run time 3 minutes, 55 seconds
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on dbeaver.
Rule NameIssues FixedFiles ChangedTime saved
Add Braces to Control Statements 1293 273 43 hours, 6 minutes
Collapse If Statements 304 211 25 hours, 20 minutes
Create Temp Files Using Java NIO 3 3 15 minutes
Hide Default Constructor In Utility Classes 173 173 14 hours, 25 minutes
Insert Break Statements in For-loops 1 1 2 minutes
Make Fields And Variables Final 19685 2325 1640 hours, 25 minutes
Remove Boxing for String Conversions 1 1 5 minutes
Remove Collection::addAll 12 12 24 minutes
Remove Explicit Call To super() 107 106 1 hour, 47 minutes
Remove Explicit Type Argument 43 32 43 minutes
Remove Inherited Interfaces from Class Declaration 83 61 2 hours, 46 minutes
Remove Lambda Expression Braces 656 350 54 hours, 40 minutes
Remove Modifiers in Interface Properties 26 5 26 minutes
Remove Null-Checks Before Instanceof 7 7 35 minutes
Remove Redundant Type Casts 18 18 1 hour, 30 minutes
Remove toString() on String 8 6 16 minutes
Remove Unnecessary Semicolons 9 8 9 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 52 34 1 hour, 44 minutes
Remove Unused Parameters in Private Methods 49 39 4 hours, 5 minutes
Reorder Modifiers 188 124 6 hours, 16 minutes
Reorder String Equality Check 108 62 18 hours
Replace Assignment with Compound Operator 20 11 40 minutes
Replace Collection.sort with List.sort 4 4 8 minutes
Replace Equality Check with isEmpty() 28 19 56 minutes
Replace equals() on Enum Constants 19 8 1 hour, 35 minutes
Replace Expression Lambda with Method Reference 213 138 7 hours, 6 minutes
Replace For-Loop with Enhanced-For-Loop 56 39 4 hours, 40 minutes
Replace For-Loop with Iterable::forEach 900 422 225 hours
Replace For-Loop with Stream::findFirst 88 63 2 hours, 56 minutes
Replace For-Loop with Stream::Match 42 36 1 hour, 24 minutes
Replace indexOf() with contains() 2 2 4 minutes
Replace put(..) with putIfAbsent(..) 3 2 6 minutes
Replace static final Collections with Collections.unmodifiable...() 9 6 1 hour, 30 minutes
Replace While-Loop with Enhanced For-Loop 1 1 5 minutes
Split Multiple Variable Declarations 141 96 4 hours, 42 minutes
StringBuffer() to StringBuilder() 2 2 4 minutes
Use @Override Annotation 756 384 63 hours
Use Arrays Stream 1 1 5 minutes
Use Collections Singleton List 4 4 8 minutes
Use equals() on Primitive Objects 4 3 8 minutes
Use Functional Interfaces 99 71 8 hours, 15 minutes
Use Guard Condition 853 499 71 hours, 5 minutes
Use Multi Catch 4 4 20 minutes
Use Offset Based String Methods 2 1 10 minutes
Use Portable Newline 1 1 1 minute
Use Predefined Standard Charset 1 1 2 minutes
Use SecureRandom 3 2 15 minutes
Use Stream::collect 64 51 16 hours
Use Stream::filter 221 147 18 hours, 25 minutes
Use Stream::map 63 53 15 hours, 45 minutes
Use String Join 1 1 5 minutes
Use StringBuilder::append 2030 840 67 hours, 40 minutes
Use Try-With-Resource 2 1 30 minutes
* One Java file could contain more than one Java class.


jSparrow results for hudi

Metrics for hudi (created on 23.2.2021):

Total Java file* count 974
Number of files changed 591
Total number of issues fixed 7278
Total time saved 592 hours, 32 minutes
jSparrow run time 39 seconds
* One Java file could contain more than one Java class.

Per Rule Statistics

This table contains the list of rules that were applied on hudi.
Rule NameIssues FixedFiles ChangedTime saved
Avoid Concatenation in Logging Statements 12 8 1 hour
Collapse If Statements 7 5 35 minutes
Hide Default Constructor In Utility Classes 72 72 6 hours
Make Fields And Variables Final 5736 527 478 hours
Remove Collection::addAll 5 4 10 minutes
Remove Explicit Call To super() 13 12 13 minutes
Remove Explicit Type Argument 14 14 14 minutes
Remove Inherited Interfaces from Class Declaration 4 4 8 minutes
Remove Lambda Expression Braces 192 75 16 hours
Remove Modifiers in Interface Properties 11 5 11 minutes
Remove Redundant Type Casts 13 8 1 hour, 5 minutes
Remove toString() on String 2 2 4 minutes
Remove Unnecessary Thrown Exceptions on Method Signatures 28 18 56 minutes
Remove Unused Parameters in Private Methods 6 4 30 minutes
Reorder String Equality Check 49 19 8 hours, 10 minutes
Replace Assignment with Compound Operator 3 2 6 minutes
Replace Collection.sort with List.sort 4 3 8 minutes
Replace Equality Check with isEmpty() 3 3 6 minutes
Replace equals() on Enum Constants 23 9 1 hour, 55 minutes
Replace Expression Lambda with Method Reference 84 39 2 hours, 48 minutes
Replace For-Loop with Enhanced-For-Loop 6 5 30 minutes
Replace For-Loop with Iterable::forEach 126 56 31 hours, 30 minutes
Replace For-Loop with Stream::findFirst 1 1 2 minutes
Replace For-Loop with Stream::Match 3 3 6 minutes
Replace Inefficient Constructors with valueOf() 8 3 40 minutes
Replace put(..) with putIfAbsent(..) 16 13 32 minutes
Replace While-Loop with Enhanced For-Loop 3 3 15 minutes
Reuse Random Objects 3 3 15 minutes
StringBuffer() to StringBuilder() 3 1 6 minutes
Use @Override Annotation 67 33 5 hours, 35 minutes
Use Arrays Stream 5 4 25 minutes
Use BufferedReader::lines 1 1 5 minutes
Use Collections Singleton List 28 14 56 minutes
Use Comparator Methods 1 1 5 minutes
Use equals() on Primitive Objects 7 4 14 minutes
Use Guard Condition 86 54 7 hours, 10 minutes
Use Portable Newline 10 3 10 minutes
Use SecureRandom 13 13 1 hour, 5 minutes
Use Stream::collect 3 3 45 minutes
Use Stream::filter 17 16 1 hour, 25 minutes
Use Stream::map 11 10 2 hours, 45 minutes
Use String Join 2 2 10 minutes
Use StringBuilder::append 576 194 19 hours, 12 minutes
Use Try-With-Resource 1 1 15 minutes
* One Java file could contain more than one Java class.