Tomcat
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
  • 9% duplication:
    • 187,879 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 18,030 duplicated lines
  • 872 duplicates
system9% (18,030 lines)
Duplication per Extension
java9% (18,030 lines)
Duplication per Component (primary)
java/org/apache/tomcat12% (7,480 lines)
java/org/apache/catalina6% (4,440 lines)
java/org/apache/el31% (2,561 lines)
java/org/apache/jasper7% (1,443 lines)
modules/jdbc-pool/src/main16% (892 lines)
java/jakarta/el17% (434 lines)
java/org/apache/coyote3% (382 lines)
java/org/apache/naming6% (125 lines)
java/jakarta/servlet/jsp6% (91 lines)
java/org/apache/juli6% (75 lines)
java/jakarta/websocket7% (29 lines)
java/jakarta/servlet2% (21 lines)
modules/owb/src/main7% (20 lines)
java/jakarta/servlet/http1% (15 lines)
java/jakarta/security/auth4% (14 lines)
java/jakarta/websocket/server4% (8 lines)
java/jakarta/transaction0% (0 lines)
java/jakarta/servlet/annotation0% (0 lines)
java/jakarta/servlet/descriptor0% (0 lines)
java/jakarta/mail/internet0% (0 lines)
java/jakarta/mail0% (0 lines)
java/jakarta/annotation0% (0 lines)
java/jakarta/annotation/security0% (0 lines)
java/jakarta/annotation/sql0% (0 lines)
java/jakarta/xml/ws0% (0 lines)
java/jakarta/persistence0% (0 lines)
java/jakarta/ejb0% (0 lines)
modules/cxf/src/main0% (0 lines)

Duplication Between Components (50+ lines)

G java/org/apache/tomcat java/org/apache/tomcat java/org/apache/jasper java/org/apache/jasper java/org/apache/tomcat--java/org/apache/jasper 248 java/org/apache/el java/org/apache/el java/org/apache/tomcat--java/org/apache/el 1023 modules/jdbc-pool/src/main modules/jdbc-pool/src/main java/org/apache/tomcat--modules/jdbc-pool/src/main 86 java/jakarta/el java/jakarta/el java/org/apache/el--java/jakarta/el 421 java/org/apache/juli java/org/apache/juli java/org/apache/catalina java/org/apache/catalina java/org/apache/juli--java/org/apache/catalina 150 java/org/apache/catalina--java/org/apache/tomcat 216 java/org/apache/catalina--java/org/apache/jasper 66

Download: SVG DOT (open online Graphviz editor)

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
300 x 2 java/org/apache/el/parser
java/org/apache/el/parser
ELParserTokenManager.java
ELParserTokenManager.java
713:1044 (16%)
1486:1817 (16%)
view
105 x 2 modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
MultiLockFairBlockingQueue.java
FairBlockingQueue.java
282:517 (42%)
284:520 (43%)
view
78 x 2 java/org/apache/tomcat/util/log
java/org/apache/jasper/compiler
SystemLogHandler.java
AntCompiler.java
144:272 (65%)
394:522 (29%)
view
68 x 2 modules/jdbc-pool/src/ma...he/tomcat/jdbc/pool/jmx
modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
ConnectionPool.java
DataSourceProxy.java
411:523 (14%)
1103:1303 (12%)
view
66 x 2 java/org/apache/el/parser
java/org/apache/el/parser
ELParserTokenManager.java
ELParserTokenManager.java
258:342 (3%)
1049:1133 (3%)
view
38 x 2 modules/jdbc-pool/src/ma...he/tomcat/jdbc/pool/jmx
modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
ConnectionPool.java
DataSourceProxy.java
278:340 (8%)
877:987 (7%)
view
37 x 2 java/org/apache/tomcat/dbcp/dbcp2/datasources
java/org/apache/tomcat/dbcp/dbcp2/datasources
CPDSConnectionFactory.java
KeyedCPDSConnectionFactory.java
201:249 (19%)
169:217 (24%)
view
35 x 2 modules/jdbc-pool/src/ma...he/tomcat/jdbc/pool/jmx
modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
ConnectionPool.java
DataSourceProxy.java
862:952 (7%)
1368:1457 (6%)
view
34 x 2 modules/jdbc-pool/src/ma...he/tomcat/jdbc/pool/jmx
modules/jdbc-pool/src/ma...apache/tomcat/jdbc/pool
ConnectionPool.java
DataSourceProxy.java
344:411 (7%)
995:1093 (6%)
view
32 x 2 java/org/apache/tomcat/util/json
java/org/apache/el/parser
JavaCharStream.java
SimpleCharStream.java
230:280 (9%)
141:191 (12%)
view
32 x 2 java/org/apache/juli
java/org/apache/catalina/valves
DateFormatCache.java
AbstractAccessLogValve.java
132:181 (37%)
283:332 (3%)
view
30 x 2 java/org/apache/el/util
java/jakarta/el
ReflectionUtil.java
Util.java
507:557 (9%)
755:805 (6%)
view
28 x 2 java/org/apache/catalina/core
java/org/apache/catalina/core
ApplicationHttpResponse.java
ApplicationResponse.java
55:167 (33%)
52:163 (82%)
view
28 x 2 java/org/apache/el/parser
java/org/apache/el/parser
TokenMgrError.java
ParseException.java
52:80 (75%)
137:165 (35%)
view
28 x 2 java/org/apache/tomcat/util/json
java/org/apache/el/parser
JavaCharStream.java
SimpleCharStream.java
576:623 (8%)
417:464 (11%)
view
27 x 2 java/org/apache/tomcat/util/json
java/org/apache/el/parser
ParseException.java
ParseException.java
52:125 (33%)
30:102 (33%)
view
26 x 2 java/org/apache/tomcat/util/json
java/org/apache/tomcat/util/json
TokenMgrError.java
ParseException.java
69:95 (74%)
168:194 (32%)
view
26 x 2 java/org/apache/tomcat/util/json
java/org/apache/el/parser
Token.java
Token.java
25:144 (100%)
9:128 (100%)
view
26 x 2 java/org/apache/jasper/el
java/org/apache/jasper/el
JspMethodExpression.java
JspValueExpression.java
80:118 (39%)
118:156 (28%)
view
26 x 2 java/org/apache/jasper/tagplugins/jstl/core
java/org/apache/jasper/tagplugins/jstl/core
Import.java
Import.java
203:235 (10%)
334:366 (10%)
view
Most Frequent Duplicates
The list of 20 most frequently found duplicates.
Size#FoldersFilesLinesCode
6 x 16 java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
...
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
...
886:891 (<1%)
919:924 (<1%)
980:985 (<1%)
989:994 (<1%)
998:1003 (<1%)
1007:1012 (<1%)
1016:1021 (<1%)
1025:1030 (<1%)
1042:1047 (<1%)
1067:1072 (<1%)
...
view
6 x 10 java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
MessageDestinationRef.java
ContextEnvironment.java
ContextService.java
MessageDestination.java
ContextResourceEnvRef.java
ContextResource.java
ContextHandler.java
ContextEjb.java
ContextLocalEjb.java
ContextResourceLink.java
89:97 (10%)
90:99 (11%)
261:269 (3%)
104:112 (8%)
66:74 (16%)
132:140 (7%)
151:159 (6%)
109:118 (8%)
109:117 (8%)
79:87 (11%)
view
9 x 10 java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
MessageDestinationRef.java
ContextEnvironment.java
ContextService.java
MessageDestination.java
ContextResourceEnvRef.java
ContextResource.java
ContextHandler.java
ContextEjb.java
ContextLocalEjb.java
ContextResourceLink.java
100:113 (15%)
102:115 (16%)
286:299 (5%)
119:132 (12%)
76:89 (24%)
146:159 (10%)
168:181 (9%)
122:135 (12%)
121:134 (12%)
90:103 (17%)
view
6 x 9 java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
AstMod.java
AstMult.java
AstEqual.java
AstDiv.java
AstPlus.java
AstLessThanEqual.java
AstGreaterThanEqual.java
AstMinus.java
AstNotEqual.java
32:39 (66%)
32:39 (66%)
31:38 (66%)
32:39 (66%)
32:39 (66%)
31:38 (46%)
31:38 (46%)
32:39 (66%)
31:38 (66%)
view
7 x 7 java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
122:129 (2%)
153:160 (2%)
184:191 (2%)
215:222 (2%)
246:253 (2%)
277:284 (2%)
308:315 (2%)
view
6 x 7 java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
WebXml.java
WebXml.java
WebXml.java
WebXml.java
WebXml.java
WebXml.java
WebXml.java
1052:1057 (<1%)
1078:1083 (<1%)
1164:1169 (<1%)
1186:1191 (<1%)
1211:1216 (<1%)
1270:1275 (<1%)
1325:1330 (<1%)
view
6 x 6 java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
java/org/apache/catalina/mbeans
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
MBeanUtils.java
594:600 (1%)
626:632 (1%)
652:658 (1%)
677:683 (1%)
703:709 (1%)
729:735 (1%)
view
6 x 6 java/org/apache/tomcat/util/collections
java/org/apache/tomcat/dbcp/dbcp2/datasources
java/org/apache/tomcat/dbcp/dbcp2/datasources
java/org/apache/catalina/authenticator
java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/util/descriptor/web
CaseInsensitiveKeyMap.java
UserPassKey.java
PoolKey.java
SingleSignOnSessionKey.java
PStmtKey.java
ResourceBase.java
188:195 (6%)
68:75 (13%)
38:45 (14%)
73:80 (9%)
791:798 (1%)
166:173 (6%)
view
6 x 6 java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/dbcp/dbcp2
java/org/apache/tomcat/dbcp/dbcp2
DelegatingConnection.java
DelegatingConnection.java
DelegatingConnection.java
DelegatingConnection.java
DelegatingConnection.java
DelegatingConnection.java
300:308 (1%)
315:323 (1%)
732:740 (1%)
761:769 (1%)
775:783 (1%)
789:797 (1%)
view
8 x 5 java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
java/org/apache/tomcat/util/descriptor/web
ContextEjb.java
ContextService.java
ContextLocalEjb.java
ContextResource.java
ContextEnvironment.java
87:95 (11%)
215:223 (4%)
87:95 (11%)
114:122 (9%)
74:82 (14%)
view
15 x 5 java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
ELParser.java
ELParser.java
ELParser.java
ELParser.java
ELParser.java
258:278 (<1%)
676:695 (<1%)
786:805 (<1%)
1001:1020 (<1%)
1084:1103 (<1%)
view
6 x 5 java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/servlet
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
TagPluginManager.java
ImplicitTagLibraryInfo.java
JasperInitializer.java
TldCache.java
JspDocumentParser.java
69:74 (3%)
126:131 (5%)
74:79 (13%)
78:83 (6%)
132:137 (<1%)
view
7 x 5 java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
java/org/apache/jasper/compiler
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
JspDocumentParser.java
1083:1090 (<1%)
1104:1111 (<1%)
1120:1127 (<1%)
1136:1143 (<1%)
1152:1159 (<1%)
view
6 x 5 java/org/apache/catalina/manager/host
java/org/apache/catalina/manager
java/org/apache/catalina/manager
java/org/apache/catalina/manager
java/org/apache/catalina/manager/host
HTMLHostManagerServlet.java
StatusManagerServlet.java
HTMLManagerServlet.java
ManagerServlet.java
HostManagerServlet.java
76:82 (1%)
189:195 (2%)
104:110 (<1%)
305:311 (<1%)
193:199 (1%)
view
6 x 5 java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
ELParser.java
ELParser.java
ELParser.java
ELParser.java
ELParser.java
364:369 (<1%)
1489:1494 (<1%)
1604:1609 (<1%)
1667:1672 (<1%)
1735:1740 (<1%)
view
14 x 5 java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
java/org/apache/el/parser
ELParser.java
ELParser.java
ELParser.java
ELParser.java
ELParser.java
60:76 (<1%)
461:477 (<1%)
1507:1523 (<1%)
1783:1799 (<1%)
1864:1880 (<1%)
view
6 x 4 java/jakarta/servlet/jsp/el
java/jakarta/servlet/jsp/el
java/jakarta/servlet/jsp/el
java/jakarta/servlet/jsp/el
ScopedAttributeELResolver.java
ScopedAttributeELResolver.java
ScopedAttributeELResolver.java
ScopedAttributeELResolver.java
167:172 (4%)
183:188 (4%)
200:205 (4%)
217:222 (4%)
view
11 x 4 java/org/apache/tomcat/util/net/openssl/ciphers
java/org/apache/tomcat/util/net/openssl/ciphers
java/org/apache/tomcat/util/net/openssl/ciphers
java/org/apache/tomcat/util/net/openssl/ciphers
Cipher.java
Cipher.java
Cipher.java
Cipher.java
2887:2897 (<1%)
3057:3067 (<1%)
3142:3152 (<1%)
3755:3765 (<1%)
view
7 x 4 java/org/apache/catalina/storeconfig
java/org/apache/catalina/storeconfig
java/org/apache/catalina/storeconfig
java/org/apache/catalina/storeconfig
StoreFactoryBase.java
CredentialHandlerSF.java
InterceptorSF.java
RealmSF.java
115:122 (10%)
38:45 (22%)
38:45 (23%)
39:46 (20%)
view
6 x 4 java/org/apache/el/util
java/org/apache/el/util
java/jakarta/el
java/jakarta/el
ReflectionUtil.java
ReflectionUtil.java
Util.java
Util.java
204:209 (1%)
226:231 (1%)
284:289 (1%)
306:311 (1%)
view