splitInitialLine() — netty Function Reference
Architecture documentation for the splitInitialLine() function in HttpObjectDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4c11fc2f_f276_60ad_ba54_107006b2835d["splitInitialLine()"] 6c551372_1bb2_fe27_3884_c4cc297c86ae["HttpObjectDecoder"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|defined in| 6c551372_1bb2_fe27_3884_c4cc297c86ae 3a54a7e3_c206_fca7_1bb4_d8176ccd19cb["decode()"] 3a54a7e3_c206_fca7_1bb4_d8176ccd19cb -->|calls| 4c11fc2f_f276_60ad_ba54_107006b2835d 6696e64c_b543_c1bd_c8f5_9a0611f1bd22["isControlOrWhitespaceAsciiChar()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| 6696e64c_b543_c1bd_c8f5_9a0611f1bd22 e8aadc10_5550_f709_7873_e84704f04e88["isDecodingRequest()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| e8aadc10_5550_f709_7873_e84704f04e88 2b5a1e5d_3274_82c2_5ac9_47f058c1a2d6["isOWS()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| 2b5a1e5d_3274_82c2_5ac9_47f058c1a2d6 5ad7ff4f_92a2_19dc_3e69_68db33d75cd9["findNonSPLenient()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| 5ad7ff4f_92a2_19dc_3e69_68db33d75cd9 bbcc8918_24b9_8ce0_71a4_83114c088052["findSPLenient()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| bbcc8918_24b9_8ce0_71a4_83114c088052 06fd4062_6fee_1709_b2d3_89c0192da3ba["findEndOfString()"] 4c11fc2f_f276_60ad_ba54_107006b2835d -->|calls| 06fd4062_6fee_1709_b2d3_89c0192da3ba style 4c11fc2f_f276_60ad_ba54_107006b2835d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java lines 962–997
private String[] splitInitialLine(ByteBuf asciiBuffer) {
final byte[] asciiBytes = asciiBuffer.array();
final int arrayOffset = asciiBuffer.arrayOffset();
final int startContent = arrayOffset + asciiBuffer.readerIndex();
final int end = startContent + asciiBuffer.readableBytes();
byte lastByte = asciiBytes[end - 1];
if (isControlOrWhitespaceAsciiChar(lastByte)) {
if (isDecodingRequest() || !isOWS(lastByte)) {
// There should no extra control or whitespace char in case of a request.
// In case of a response there might be a SP if there is no reason-phrase given.
// See
// - https://datatracker.ietf.org/doc/html/rfc2616#section-5.1
// - https://datatracker.ietf.org/doc/html/rfc9112#name-status-line
throw new IllegalArgumentException(
"Illegal character in request line: 0x" + Integer.toHexString(lastByte));
}
}
final int aStart = findNonSPLenient(asciiBytes, startContent, end);
final int aEnd = findSPLenient(asciiBytes, aStart, end);
final int bStart = findNonSPLenient(asciiBytes, aEnd, end);
final int bEnd = findSPLenient(asciiBytes, bStart, end);
final int cStart = findNonSPLenient(asciiBytes, bEnd, end);
final int cEnd = findEndOfString(asciiBytes, Math.max(cStart - 1, startContent), end);
return new String[]{
splitFirstWordInitialLine(asciiBytes, aStart, aEnd - aStart),
splitSecondWordInitialLine(asciiBytes, bStart, bEnd - bStart),
cStart < cEnd ? splitThirdWordInitialLine(asciiBytes, cStart, cEnd - cStart) : StringUtil.EMPTY_STRING};
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does splitInitialLine() do?
splitInitialLine() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java.
Where is splitInitialLine() defined?
splitInitialLine() is defined in codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectDecoder.java at line 962.
What does splitInitialLine() call?
splitInitialLine() calls 6 function(s): findEndOfString, findNonSPLenient, findSPLenient, isControlOrWhitespaceAsciiChar, isDecodingRequest, isOWS.
What calls splitInitialLine()?
splitInitialLine() is called by 1 function(s): decode.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free