Tomcat
Unit Size

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 19,388 units with 193,681 lines of code in units (77.5% of code).
    • 127 very long units (20,951 lines of code)
    • 380 long units (25,672 lines of code)
    • 1,540 medium size units (47,273 lines of code)
    • 2,336 small units (33,970 lines of code)
    • 15,005 very small units (65,815 lines of code)
10% | 13% | 24% | 17% | 33%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
java10% | 13% | 24% | 17% | 33%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Logical Component
primary logical decomposition
java/org/apache/catalina9% | 14% | 26% | 18% | 30%
java/org/apache/tomcat9% | 11% | 21% | 17% | 39%
java/org/apache/jasper16% | 14% | 27% | 15% | 25%
java/org/apache/coyote16% | 11% | 20% | 17% | 34%
java/org/apache/el18% | 17% | 20% | 15% | 28%
java/jakarta/el16% | 5% | 22% | 24% | 31%
java/org/apache/naming18% | 12% | 18% | 20% | 30%
modules/jdbc-pool/src/main6% | 6% | 22% | 15% | 49%
java/org/apache/juli0% | 21% | 36% | 17% | 24%
java/jakarta/servlet/http0% | 14% | 17% | 13% | 54%
java/jakarta/servlet/jsp0% | 5% | 28% | 20% | 46%
modules/owb/src/main0% | 19% | 17% | 25% | 37%
java/jakarta/websocket0% | 0% | 28% | 4% | 66%
java/jakarta/security/auth0% | 0% | 16% | 13% | 69%
java/jakarta/websocket/server0% | 0% | 15% | 11% | 73%
java/jakarta/servlet0% | 0% | 0% | 16% | 83%
java/jakarta/transaction0% | 0% | 0% | 0% | 100%
java/jakarta/mail/internet0% | 0% | 0% | 0% | 100%
java/jakarta/mail0% | 0% | 0% | 0% | 100%
Legend:
101+
51-100
21-50
11-20
1-10
Alternative Visuals
Longest Units
Top 50 longest units
Unit# linesMcCabe index# params
public String toXml()
in java/org/apache/tomcat/util/descriptor/web/WebXml.java
612 117 0
public boolean merge()
in java/org/apache/tomcat/util/descriptor/web/WebXml.java
470 134 1
protected void generateClass()
in java/org/apache/jasper/compiler/JDTCompiler.java
406 82 1
public EmbeddedServletOptions()
in java/org/apache/jasper/EmbeddedServletOptions.java
366 116 2
private int jjMoveNfa_0()
in java/org/apache/tomcat/util/json/JSONParserTokenManager.java
339 154 2
private int jjMoveNfa_2()
in java/org/apache/el/parser/ELParserTokenManager.java
336 135 2
private int jjMoveNfa_1()
in java/org/apache/el/parser/ELParserTokenManager.java
336 135 2
protected void doLock()
in java/org/apache/catalina/servlets/WebdavServlet.java
331 72 2
private Node parseStandardAction()
in java/org/apache/jasper/compiler/JspDocumentParser.java
316 39 6
static
in java/org/apache/coyote/http2/HPackHuffman.java
307 8 0
protected void serveResource()
in java/org/apache/catalina/servlets/DefaultServlet.java
287 86 4
public void addRuleInstances()
in java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
268 2 1
public void doTag()
in java/org/apache/jasper/tagplugins/jstl/core/Import.java
257 11 1
private Session connectToServerRecursive()
in java/org/apache/tomcat/websocket/WsWebSocketContainer.java
248 52 4
public final void action()
in java/org/apache/coyote/AbstractProcessor.java
246 66 2
protected void list()
in java/org/apache/catalina/manager/HTMLManagerServlet.java
242 25 4
public static PoolConfiguration parsePoolProperties()
in modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceFactory.java
239 60 1
protected synchronized void startInternal()
in java/org/apache/catalina/core/StandardContext.java
232 55 0
public static BasicDataSource createDataSource()
in java/org/apache/tomcat/dbcp/dbcp2/BasicDataSourceFactory.java
222 56 1
public void invoke()
in java/org/apache/catalina/valves/rewrite/RewriteValve.java
220 66 2
public Object getObjectInstance()
in java/org/apache/naming/factory/webservices/ServiceRefFactory.java
211 42 4
static
in java/jakarta/el/ImportHandler.java
211 1 0
public MessageHandlerInfo()
in java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java
206 53 2
private void processParameters()
in java/org/apache/tomcat/util/http/Parameters.java
200 54 4
public void run()
in java/org/apache/tomcat/util/net/AprEndpoint.java
195 64 0
private void configureContext()
in java/org/apache/catalina/startup/ContextConfig.java
187 48 1
private void prepareRequest()
in java/org/apache/coyote/ajp/AjpProcessor.java
187 48 0
private void generatePropFindResponse()
in java/org/apache/catalina/servlets/WebdavServlet.java
186 31 12
public static String getVMInfo()
in java/org/apache/tomcat/util/Diagnostics.java
184 16 1
protected void configureNamingRules()
in java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
184 1 1
final public void Compare()
in java/org/apache/el/parser/ELParser.java
183 46 0
public final void invoke()
in java/org/apache/catalina/core/StandardWrapperValve.java
181 42 2
protected boolean postParseRequest()
in java/org/apache/catalina/connector/CoyoteAdapter.java
180 43 4
boolean parseRequestLine()
in java/org/apache/coyote/http11/Http11InputBuffer.java
179 63 3
private int jjMoveNfa_0()
in java/org/apache/el/parser/ELParserTokenManager.java
179 62 2
public SocketState service()
in java/org/apache/coyote/http11/Http11Processor.java
177 54 1
protected void doPropfind()
in java/org/apache/catalina/servlets/WebdavServlet.java
175 39 2
public SocketState process()
in java/org/apache/coyote/AbstractProtocol.java
175 48 2
public void visit()
in java/org/apache/jasper/compiler/Generator.java
175 29 1
protected static void writeProcessorState()
in java/org/apache/catalina/manager/StatusTransformer.java
174 23 4
public void list()
in java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
171 12 4
private void checkXmlAttributes()
in java/org/apache/jasper/compiler/Validator.java
168 61 3
private final void processCookieHeader()
in java/org/apache/tomcat/util/http/LegacyCookieProcessor.java
166 58 4
protected String getCGIVariable()
in java/org/apache/catalina/ssi/SSIServletExternalResolver.java
164 62 1
public Object getObjectInstance()
in java/org/apache/naming/factory/BeanFactory.java
159 43 4
private final void internalMapWrapper()
in java/org/apache/catalina/mapper/Mapper.java
151 37 3
protected boolean doAuthenticate()
in java/org/apache/catalina/authenticator/FormAuthenticator.java
151 38 2
protected void deployWAR()
in java/org/apache/catalina/startup/HostConfig.java
151 43 2
public void startElement()
in java/org/apache/jasper/compiler/JspDocumentParser.java
150 25 4
private static final void init()
in java/org/apache/tomcat/util/net/openssl/ciphers/OpenSSLCipherConfigurationParser.java
149 6 0