Class JsonMappingException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
com.fasterxml.jackson.core.JacksonException
com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.databind.DatabindException
com.fasterxml.jackson.databind.JsonMappingException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
InvalidDefinitionException, MismatchedInputException, UnresolvedForwardReference, ValueInstantiationException

public class JsonMappingException extends DatabindException
Checked exception used to signal fatal problems with mapping of content, distinct from low-level I/O problems (signaled using simple IOExceptions) or data encoding/decoding problems (signaled with StreamReadException, StreamWriteException).

One additional feature is the ability to denote relevant path of references (during serialization/deserialization) to help in troubleshooting.

See Also:
  • Field Details

    • _path

      Path through which problem that triggering throwing of this exception was reached.
    • _processor

      protected transient Closeable _processor
      Underlying processor (JsonParser or JsonGenerator), if known.

      NOTE: typically not serializable hence transient

      Since:
      2.7
  • Constructor Details

    • JsonMappingException

      @Deprecated public JsonMappingException(String msg)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, com.fasterxml.jackson.core.JsonLocation loc)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      @Deprecated public JsonMappingException(String msg, com.fasterxml.jackson.core.JsonLocation loc, Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg)
      Since:
      2.7
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg, Throwable problem)
      Since:
      2.7
    • JsonMappingException

      public JsonMappingException(Closeable processor, String msg, com.fasterxml.jackson.core.JsonLocation loc)
      Since:
      2.7
  • Method Details

    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonParser p, String msg, Throwable problem)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(com.fasterxml.jackson.core.JsonGenerator g, String msg, Throwable problem)
      Since:
      2.7
    • from

      public static JsonMappingException from(DeserializationContext ctxt, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(DeserializationContext ctxt, String msg, Throwable t)
      Since:
      2.7
    • from

      public static JsonMappingException from(SerializerProvider ctxt, String msg)
      Since:
      2.7
    • from

      public static JsonMappingException from(SerializerProvider ctxt, String msg, Throwable problem)
      Since:
      2.7
    • fromUnexpectedIOE

      public static JsonMappingException fromUnexpectedIOE(IOException src)
      Factory method used when "upgrading" an IOException into JsonMappingException: usually only needed to comply with a signature.

      NOTE: since 2.9 should usually NOT be used on input-side (deserialization) exceptions; instead use method(s) of InputMismatchException

      Since:
      2.1
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, Object refFrom, String refFieldName)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information. This version of method is called when the reference is through a non-indexed object, such as a Map or POJO/bean.
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, Object refFrom, int index)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information. This version of method is called when the reference is through an index, which happens with arrays and Collections.
    • wrapWithPath

      public static JsonMappingException wrapWithPath(Throwable src, JsonMappingException.Reference ref)
      Method that can be called to either create a new JsonMappingException (if underlying exception is not a JsonMappingException), or augment given exception with given path/reference information.
    • withCause

      public JsonMappingException withCause(Throwable cause)
      Since:
      2.13
    • getPath

      Method for accessing full structural path within type hierarchy down to problematic property.
    • getPathReference

      public String getPathReference()
      Method for accessing description of path that lead to the problem that triggered this exception
    • getPathReference

      public StringBuilder getPathReference(StringBuilder sb)
    • prependPath

      public void prependPath(Object referrer, String fieldName)
      Method called to prepend a reference information in front of current path
      Specified by:
      prependPath in class DatabindException
    • prependPath

      public void prependPath(Object referrer, int index)
      Method called to prepend a reference information in front of current path
      Specified by:
      prependPath in class DatabindException
    • prependPath

      public void prependPath(JsonMappingException.Reference r)
    • getProcessor

      public Object getProcessor()
      Overrides:
      getProcessor in class com.fasterxml.jackson.core.JsonProcessingException
    • getLocalizedMessage

      public String getLocalizedMessage()
      Overrides:
      getLocalizedMessage in class Throwable
    • getMessage

      public String getMessage()
      Method is overridden so that we can properly inject description of problem path, if such is defined.
      Overrides:
      getMessage in class com.fasterxml.jackson.core.JsonProcessingException
    • _buildMessage

      protected String _buildMessage()
    • toString

      public String toString()
      Overrides:
      toString in class com.fasterxml.jackson.core.JsonProcessingException
    • _appendReferenceChain

      protected StringBuilder _appendReferenceChain(StringBuilder sb)
      Method that is called to add reference chain information to message, but may be overridden to customize handling, including appending other information or removing the reference chain altogether.
      Since:
      2.18.2
    • _appendPathDesc

      protected void _appendPathDesc(StringBuilder sb)