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.
No license required You can review the refactoring on your project without a license by installing jSparrow to your Eclipse IDE.
Install the plug-in from Eclipse IDE: Eclipse Marketplace (opens new window)
Individual Statistics Here, the statistics for each open source project can be seen individually. Please click on the tab headers to switch between projects.
cucumber-jvm
jenkins-core
orientdb-core
rocketmq
spring-boot
vert.x
biojava
dbeaver
hudi
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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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_upward Rule Namearrow_upward Issues Fixedarrow_upward Files Changedarrow_upward Time 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.