Home / Function/ splitInitialLine() — netty Function Reference

splitInitialLine() — netty Function Reference

Architecture documentation for the splitInitialLine() function in HttpObjectDecoder.java from the netty codebase.

Function java ProtocolCodecs HTTP calls 6 called by 1

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};
    }

Subdomains

Called By

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