Class JsonMappingException

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    InvalidDefinitionException, MismatchedInputException, UnresolvedForwardReference, ValueInstantiationException

    public class JsonMappingException
    extends com.fasterxml.jackson.core.JsonProcessingException
    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 JsonParseException, JsonGenerationException).

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

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JsonMappingException.Reference
      Simple bean class used to contain references.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.LinkedList<JsonMappingException.Reference> _path
      Path through which problem that triggering throwing of this exception was reached.
      protected java.io.Closeable _processor
      Underlying processor (JsonParser or JsonGenerator), if known.
      • Fields inherited from class com.fasterxml.jackson.core.JsonProcessingException

        _location
    • Constructor Summary

      Constructors 
      Constructor Description
      JsonMappingException​(java.io.Closeable processor, java.lang.String msg)  
      JsonMappingException​(java.io.Closeable processor, java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)  
      JsonMappingException​(java.io.Closeable processor, java.lang.String msg, java.lang.Throwable problem)  
      JsonMappingException​(java.lang.String msg)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
      JsonMappingException​(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
      JsonMappingException​(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc, java.lang.Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
      JsonMappingException​(java.lang.String msg, java.lang.Throwable rootCause)
      Deprecated.
      Since 2.7 Use variant that takes JsonParser instead
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _appendPathDesc​(java.lang.StringBuilder sb)  
      protected java.lang.String _buildMessage()  
      static JsonMappingException from​(com.fasterxml.jackson.core.JsonGenerator g, java.lang.String msg)  
      static JsonMappingException from​(com.fasterxml.jackson.core.JsonGenerator g, java.lang.String msg, java.lang.Throwable problem)  
      static JsonMappingException from​(com.fasterxml.jackson.core.JsonParser p, java.lang.String msg)  
      static JsonMappingException from​(com.fasterxml.jackson.core.JsonParser p, java.lang.String msg, java.lang.Throwable problem)  
      static JsonMappingException from​(DeserializationContext ctxt, java.lang.String msg)  
      static JsonMappingException from​(DeserializationContext ctxt, java.lang.String msg, java.lang.Throwable t)  
      static JsonMappingException from​(SerializerProvider ctxt, java.lang.String msg)  
      static JsonMappingException from​(SerializerProvider ctxt, java.lang.String msg, java.lang.Throwable problem)  
      static JsonMappingException fromUnexpectedIOE​(java.io.IOException src)
      Factory method used when "upgrading" an IOException into JsonMappingException: usually only needed to comply with a signature.
      java.lang.String getLocalizedMessage()  
      java.lang.String getMessage()
      Method is overridden so that we can properly inject description of problem path, if such is defined.
      java.util.List<JsonMappingException.Reference> getPath()
      Method for accessing full structural path within type hierarchy down to problematic property.
      java.lang.String getPathReference()
      Method for accessing description of path that lead to the problem that triggered this exception
      java.lang.StringBuilder getPathReference​(java.lang.StringBuilder sb)  
      java.lang.Object getProcessor()  
      void prependPath​(JsonMappingException.Reference r)  
      void prependPath​(java.lang.Object referrer, int index)
      Method called to prepend a reference information in front of current path
      void prependPath​(java.lang.Object referrer, java.lang.String fieldName)
      Method called to prepend a reference information in front of current path
      java.lang.String toString()  
      static JsonMappingException wrapWithPath​(java.lang.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.
      static JsonMappingException wrapWithPath​(java.lang.Throwable src, java.lang.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.
      static JsonMappingException wrapWithPath​(java.lang.Throwable src, java.lang.Object refFrom, java.lang.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.
      • Methods inherited from class com.fasterxml.jackson.core.JsonProcessingException

        clearLocation, getLocation, getMessageSuffix, getOriginalMessage
      • Methods inherited from class java.lang.Throwable

        addSuppressed, fillInStackTrace, getCause, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • _path

        protected java.util.LinkedList<JsonMappingException.Reference> _path
        Path through which problem that triggering throwing of this exception was reached.
      • _processor

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

        NOTE: typically not serializable hence transient

        Since:
        2.7
    • Constructor Detail

      • JsonMappingException

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

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

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

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

        public JsonMappingException​(java.io.Closeable processor,
                                    java.lang.String msg)
        Since:
        2.7
      • JsonMappingException

        public JsonMappingException​(java.io.Closeable processor,
                                    java.lang.String msg,
                                    java.lang.Throwable problem)
        Since:
        2.7
      • JsonMappingException

        public JsonMappingException​(java.io.Closeable processor,
                                    java.lang.String msg,
                                    com.fasterxml.jackson.core.JsonLocation loc)
        Since:
        2.7
    • Method Detail

      • from

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

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

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

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

        public static JsonMappingException fromUnexpectedIOE​(java.io.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​(java.lang.Throwable src,
                                                        java.lang.Object refFrom,
                                                        java.lang.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​(java.lang.Throwable src,
                                                        java.lang.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​(java.lang.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.
      • getPath

        public java.util.List<JsonMappingException.Reference> getPath()
        Method for accessing full structural path within type hierarchy down to problematic property.
      • getPathReference

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

        public java.lang.StringBuilder getPathReference​(java.lang.StringBuilder sb)
      • prependPath

        public void prependPath​(java.lang.Object referrer,
                                java.lang.String fieldName)
        Method called to prepend a reference information in front of current path
      • prependPath

        public void prependPath​(java.lang.Object referrer,
                                int index)
        Method called to prepend a reference information in front of current path
      • getProcessor

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

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

        public java.lang.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 java.lang.String _buildMessage()
      • toString

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

        protected void _appendPathDesc​(java.lang.StringBuilder sb)