Class StreamReadConstraints.Builder

  • Enclosing class:
    StreamReadConstraints

    public static final class StreamReadConstraints.Builder
    extends java.lang.Object
    • Method Detail

      • maxNestingDepth

        public StreamReadConstraints.Builder maxNestingDepth​(int maxNestingDepth)
        Sets the maximum nesting depth. The depth is a count of objects and arrays that have not been closed, `{` and `[` respectively.
        Parameters:
        maxNestingDepth - the maximum depth
        Returns:
        this builder
        Throws:
        java.lang.IllegalArgumentException - if the maxNestingDepth is set to a negative value
      • maxDocumentLength

        public StreamReadConstraints.Builder maxDocumentLength​(long maxDocLen)
        Sets the maximum allowed document length (for positive values over 0) or indicate that any length is acceptable (0 or negative number). The length is in input units of the input source, that is, in bytes or chars.
        Parameters:
        maxDocLen - the maximum allowed document if positive number above 0; otherwise (0 or negative number) means "unlimited".
        Returns:
        this builder
        Since:
        2.16
      • maxNumberLength

        public StreamReadConstraints.Builder maxNumberLength​(int maxNumLen)
        Sets the maximum number length (in chars or bytes, depending on input context). The default is 1000.
        Parameters:
        maxNumLen - the maximum number length (in chars or bytes, depending on input context)
        Returns:
        this builder
        Throws:
        java.lang.IllegalArgumentException - if the maxNumLen is set to a negative value
      • maxStringLength

        public StreamReadConstraints.Builder maxStringLength​(int maxStringLen)
        Sets the maximum string length (in chars or bytes, depending on input context). The default is 20,000,000. This limit is not exact, the limit is applied when we increase internal buffer sizes and an exception will happen at sizes greater than this limit. Some text values that are a little bigger than the limit may be treated as valid but no text values with sizes less than or equal to this limit will be treated as invalid.

        Setting this value to lower than the maxNumberLength(int) is not recommended.

        NOTE: Jackson 2.15.0 initially used a lower setting (5_000_000).

        Parameters:
        maxStringLen - the maximum string length (in chars or bytes, depending on input context)
        Returns:
        this builder
        Throws:
        java.lang.IllegalArgumentException - if the maxStringLen is set to a negative value
      • maxNameLength

        public StreamReadConstraints.Builder maxNameLength​(int maxNameLen)
        Sets the maximum name length (in chars or bytes, depending on input context). The default is 50,000. This limit is not exact, the limit is applied when we increase internal buffer sizes and an exception will happen at sizes greater than this limit. Some text values that are a little bigger than the limit may be treated as valid but no text values with sizes less than or equal to this limit will be treated as invalid.
        Parameters:
        maxNameLen - the maximum string length (in chars or bytes, depending on input context)
        Returns:
        this builder
        Throws:
        java.lang.IllegalArgumentException - if the maxStringLen is set to a negative value
        Since:
        2.16.0