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:
(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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.
arrow_upwardRule Name | arrow_upwardIssues Fixed | arrow_upwardFiles Changed | arrow_upwardTime 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.