All Implemented Interfaces:
Serializable
Direct Known Subclasses:
InputCoercionException, JsonParseException

public abstract class StreamReadException extends JsonProcessingException
Intermediate base class for all read-side streaming processing problems, including parsing and input value coercion problems.

Added in 2.10 to eventually replace JsonParseException.

Since:
2.10
See Also:
  • Field Details

    • _processor

      protected transient JsonParser _processor
    • _requestPayload

      protected RequestPayload _requestPayload
      Optional payload that can be assigned to pass along for error reporting or handling purposes. Core streaming parser implementations DO NOT initialize this; it is up to using applications and frameworks to populate it.
  • Constructor Details

  • Method Details

    • withParser

      public abstract StreamReadException withParser(JsonParser p)
      Fluent method that may be used to assign originating JsonParser, to be accessed using getProcessor().

      NOTE: `this` instance is modified and no new instance is constructed.

      Parameters:
      p - Parser instance to assign to this exception
      Returns:
      This exception instance to allow call chaining
    • withRequestPayload

      public abstract StreamReadException withRequestPayload(RequestPayload payload)
      Fluent method that may be used to assign payload to this exception, to let recipient access it for diagnostics purposes.

      NOTE: `this` instance is modified and no new instance is constructed.

      Parameters:
      payload - Payload to assign to this exception
      Returns:
      This exception instance to allow call chaining
    • getProcessor

      public JsonParser getProcessor()
      Description copied from class: JsonProcessingException
      Method that allows accessing underlying processor that triggered this exception; typically either JsonParser or JsonGenerator for exceptions that originate from streaming API. Note that it is possible that `null` may be returned if code throwing exception either has no access to processor; or has not been retrofitted to set it; this means that caller needs to take care to check for nulls. Subtypes override this method with co-variant return type, for more type-safe access.
      Overrides:
      getProcessor in class JsonProcessingException
      Returns:
      Originating processor, if available; null if not.
    • getRequestPayload

      public RequestPayload getRequestPayload()
      Method that may be called to find payload that was being parsed, if one was specified for parser that threw this Exception.
      Returns:
      request body, if payload was specified; `null` otherwise
    • getRequestPayloadAsString

      public String getRequestPayloadAsString()
      The method returns the String representation of the request payload if one was specified for parser that threw this Exception.
      Returns:
      request body as String, if payload was specified; `null` otherwise
    • getMessage

      public String getMessage()
      Overriding the getMessage() to include the request body
      Overrides:
      getMessage in class JsonProcessingException
      Returns:
      Original message preceded by optional prefix and followed by location information, message and location information separated by a linefeed