Jenkins
Duplication

Intro
  • For duplication, we look at places in code where there are six or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 2% duplication:
    • 71,144 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,662 duplicated lines
  • 99 duplicates
system2% (1,662 lines)
Duplication per Extension
java2% (1,662 lines)
Duplication per Component (level-1)
core2% (1,608 lines)
cli4% (54 lines)
Duplication per Component (level-2)
core/src/main/java/hudson/util4% (414 lines)
core/src/main/java/hudson/model1% (366 lines)
core/src/main/java/jenkins/model3% (170 lines)
core/src/main/java/hudson/cli6% (135 lines)
core/src/main/java/jenkins/security3% (109 lines)
core/src/main/java/hudson1% (93 lines)
core/src/main/java/jenkins/management18% (61 lines)
cli/src/main/java/hudson/util17% (54 lines)
core/src/main/java/hudson/lifecycle11% (41 lines)
core/src/main/java/hudson/tasks2% (40 lines)
core/src/main/java/jenkins/util1% (32 lines)
core/src/main/java/jenkins/org1% (24 lines)
core/src/main/java/hudson/views9% (22 lines)
core/src/main/java/jenkins/mvn14% (20 lines)
core/src/main/java/hudson/search3% (19 lines)
core/src/main/java/hudson/slaves<1% (14 lines)
core/src/main/java/hudson/console2% (14 lines)
core/src/main/java/hudson/init3% (12 lines)
core/src/main/java/jenkins1% (8 lines)
core/src/main/java/hudson/logging1% (7 lines)
core/src/main/java/jenkins/tools14% (7 lines)
core/src/main/java/hudson/tools0% (0 lines)
core/src/main/java/hudson/security0% (0 lines)
core/src/main/java/hudson/triggers0% (0 lines)
core/src/main/java/hudson/org0% (0 lines)
core/src/main/java/hudson/scheduler0% (0 lines)
core/src/main/java/hudson/fsp0% (0 lines)
core/src/main/java/hudson/markup0% (0 lines)
core/src/main/java/hudson/node_monitors0% (0 lines)
core/src/main/java/hudson/os0% (0 lines)
core/src/main/java/hudson/scm0% (0 lines)
core/src/main/java/hudson/widgets0% (0 lines)
core/src/main/java/hudson/diagnosis0% (0 lines)
core/src/main/java/org/acegisecurity0% (0 lines)
core/src/main/java/jenkins/websocket0% (0 lines)
core/src/main/java/jenkins/tasks0% (0 lines)
core/src/main/java/jenkins/install0% (0 lines)
core/src/main/java/jenkins/plugins0% (0 lines)
core/src/main/java/jenkins/triggers0% (0 lines)
core/src/main/java/jenkins/agents0% (0 lines)
core/src/main/java/jenkins/cli0% (0 lines)
core/src/main/java/jenkins/fingerprints0% (0 lines)
core/src/main/java/jenkins/diagnostics0% (0 lines)
core/src/main/java/jenkins/slaves0% (0 lines)
core/src/main/java/jenkins/telemetry0% (0 lines)
core/src/main/java/jenkins/scm0% (0 lines)
core/src/main/java/jenkins/widgets0% (0 lines)
core/src/main/java/jenkins/diagnosis0% (0 lines)
cli/src/main/java/hudson/cli0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
46 x 2 core/src/main/java/hudson/model
core/src/main/java/hudson/model
AsyncAperiodicWork.java
AsyncPeriodicWork.java
142:243 (50%)
127:234 (48%)
view
21 x 2 core/src/main/java/hudson/util
core/src/main/java/hudson/util
ProcessTree.java
ProcessTree.java
1307:1343 (2%)
1575:1610 (2%)
view
19 x 2 core/src/main/java/hudson/util
core/src/main/java/hudson/util
ProcessTree.java
ProcessTree.java
1274:1303 (2%)
1543:1571 (2%)
view
18 x 2 core/src/main/java/jenkins/security
core/src/main/java/jenkins/security
ImpersonatingScheduledExecutorService...
ImpersonatingExecutorService.java
48:73 (85%)
49:74 (85%)
view
17 x 2 core/src/main/java/hudson/util/io
core/src/main/java/hudson/util/io
RewindableRotatingFileOutputStream.java
ReopenableRotatingFileOutputStream.java
42:69 (85%)
43:70 (85%)
view
17 x 2 core/src/main/java/jenkins/model/lazy
core/src/main/java/jenkins/model/lazy
BuildReferenceMapAdapter.java
BuildReferenceMapAdapter.java
213:242 (9%)
316:345 (9%)
view
16 x 2 core/src/main/java/hudson/model
core/src/main/java/hudson/model
AsyncAperiodicWork.java
AsyncPeriodicWork.java
119:137 (17%)
100:119 (17%)
view
15 x 2 core/src/main/java/hudson/util/io
core/src/main/java/hudson/util/io
RewindableFileOutputStream.java
ReopenableFileOutputStream.java
66:90 (38%)
64:88 (42%)
view
13 x 3 core/src/main/java/jenkins/model/identity
core/src/main/java/jenkins/model/identity
core/src/main/java/jenkins/model/identity
InstanceIdentityProvider.java
InstanceIdentityProvider.java
InstanceIdentityProvider.java
209:229 (10%)
234:254 (10%)
259:280 (10%)
view
13 x 2 core/src/main/java/hudson
core/src/main/java/hudson
Functions.java
Util.java
810:822 (1%)
958:970 (1%)
view
12 x 2 core/src/main/java/hudson/util
core/src/main/java/hudson/util
FormValidation.java
FormFieldValidator.java
464:484 (5%)
258:278 (4%)
view
12 x 2 core/src/main/java/hudson
core/src/main/java/hudson
Functions.java
Util.java
807:818 (1%)
988:999 (1%)
view
12 x 2 core/src/main/java/hudson/model
core/src/main/java/hudson/model
UpdateCenter.java
UpdateCenter.java
2408:2430 (1%)
2442:2462 (1%)
view
11 x 2 core/src/main/java/hudson/views
core/src/main/java/hudson/views
ViewsTabBar.java
MyViewsTabBar.java
81:92 (37%)
80:91 (39%)
view
11 x 2 core/src/main/java/hudson/util
core/src/main/java/hudson/util
DualOutputStream.java
ForkOutputStream.java
36:52 (45%)
37:53 (44%)
view
11 x 2 core/src/main/java/hudson/tasks
core/src/main/java/hudson/tasks
BatchFile.java
Shell.java
121:133 (19%)
210:222 (10%)
view
11 x 2 core/src/main/java/jenkins/management
core/src/main/java/jenkins/management
ReloadLink.java
ShutdownLink.java
64:78 (42%)
60:74 (45%)
view
10 x 2 core/src/main/java/hudson/cli
core/src/main/java/hudson/cli
ReloadJobCommand.java
DeleteJobCommand.java
88:103 (25%)
73:88 (32%)
view
10 x 2 core/src/main/java/hudson/util
core/src/main/java/hudson/util/xstream
CopyOnWriteList.java
ImmutableListConverter.java
194:204 (12%)
76:86 (29%)
view
10 x 2 cli/src/main/java/hudson/util
cli/src/main/java/hudson/util
QuotedStringTokenizer.java
QuotedStringTokenizer.java
233:245 (3%)
259:271 (3%)
view
Most Frequent Duplicates
The list of 13 most frequently found duplicates.
Size#FoldersFilesLinesCode
6 x 5 core/src/main/java/hudson/cli
core/src/main/java/hudson/cli
core/src/main/java/hudson/cli
core/src/main/java/hudson/cli
core/src/main/java/hudson/cli
DeleteJobCommand.java
ConnectNodeCommand.java
DeleteViewCommand.java
DeleteNodeCommand.java
ReloadJobCommand.java
79:88 (19%)
73:82 (20%)
90:99 (16%)
78:87 (20%)
94:103 (15%)
view
6 x 4 core/src/main/java/jenkins/management
core/src/main/java/jenkins/management
core/src/main/java/jenkins/management
core/src/main/java/jenkins/management
SystemInfoLink.java
CliLink.java
NodesLink.java
ConfigureLink.java
54:62 (28%)
55:62 (28%)
55:62 (28%)
55:62 (28%)
view
8 x 4 core/src/main/java/jenkins/model/identity
core/src/main/java/jenkins/model
core/src/main/java/jenkins
core/src/main/java/jenkins/model
IdentityRootAction.java
AssetManager.java
I18n.java
RunIdMigrator.java
21:32 (17%)
35:46 (16%)
46:57 (21%)
415:426 (3%)
view
6 x 4 core/src/main/java/hudson/lifecycle
core/src/main/java/hudson/lifecycle
core/src/main/java/hudson/lifecycle
core/src/main/java/hudson/lifecycle
ExitLifecycle.java
SolarisSMFLifecycle.java
WindowsServiceLifecycle.java
UnixLifecycle.java
65:72 (31%)
45:51 (50%)
120:126 (8%)
67:73 (18%)
view
6 x 3 cli/src/main/java/hudson/util
cli/src/main/java/hudson/util
cli/src/main/java/hudson/util
QuotedStringTokenizer.java
QuotedStringTokenizer.java
QuotedStringTokenizer.java
187:193 (1%)
223:229 (1%)
249:255 (1%)
view
7 x 3 core/src/main/java/hudson/lifecycle
core/src/main/java/hudson/lifecycle
core/src/main/java/hudson/lifecycle
WindowsServiceLifecycle.java
SolarisSMFLifecycle.java
UnixLifecycle.java
119:126 (10%)
44:51 (58%)
66:73 (21%)
view
13 x 3 core/src/main/java/jenkins/model/identity
core/src/main/java/jenkins/model/identity
core/src/main/java/jenkins/model/identity
InstanceIdentityProvider.java
InstanceIdentityProvider.java
InstanceIdentityProvider.java
209:229 (10%)
234:254 (10%)
259:280 (10%)
view
6 x 3 core/src/main/java/jenkins/security/stapler
core/src/main/java/jenkins/security/stapler
core/src/main/java/jenkins/security/stapler
StaplerFilteredActionListener.java
StaplerFilteredActionListener.java
StaplerFilteredActionListener.java
53:60 (18%)
62:69 (18%)
71:78 (18%)
view
7 x 3 core/src/main/java/hudson
core/src/main/java/hudson/model
core/src/main/java/hudson/search
Plugin.java
Computer.java
Search.java
299:311 (14%)
1599:1611 (1%)
406:418 (3%)
view
6 x 3 core/src/main/java/jenkins/tools
core/src/main/java/jenkins/management
core/src/main/java/jenkins/management
GlobalToolConfiguration.java
SystemLogLink.java
PluginsLink.java
72:79 (14%)
61:68 (28%)
64:71 (22%)
view
6 x 3 core/src/main/java/hudson
core/src/main/java/hudson/logging
core/src/main/java/hudson/model
PluginManager.java
LogRecorderManager.java
UpdateCenter.java
2273:2279 (<1%)
209:215 (6%)
2564:2570 (<1%)
view
6 x 3 core/src/main/java/hudson/model
core/src/main/java/hudson/model
core/src/main/java/hudson/model
UpdateCenter.java
LoadStatistics.java
Computer.java
2507:2513 (<1%)
530:536 (2%)
1743:1749 (<1%)
view
6 x 3 core/src/main/java/jenkins/util
core/src/main/java/jenkins/security
core/src/main/java/jenkins/security
ContextResettingExecutorService.java
ImpersonatingExecutorService.java
ImpersonatingScheduledExecutorService...
34:41 (19%)
62:69 (28%)
61:68 (28%)
view