Package com.fasterxml.jackson.databind
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.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 simpleIOException
s) or data encoding/decoding problems (signaled withJsonParseException
,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
orJsonGenerator
), if known.
-
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 takesJsonParser
insteadJsonMappingException(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)
Deprecated.Since 2.7 Use variant that takesJsonParser
insteadJsonMappingException(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc, java.lang.Throwable rootCause)
Deprecated.Since 2.7 Use variant that takesJsonParser
insteadJsonMappingException(java.lang.String msg, java.lang.Throwable rootCause)
Deprecated.Since 2.7 Use variant that takesJsonParser
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" anIOException
intoJsonMappingException
: 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 exceptionjava.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 pathvoid
prependPath(java.lang.Object referrer, java.lang.String fieldName)
Method called to prepend a reference information in front of current pathjava.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
-
-
-
-
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
orJsonGenerator
), 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 takesJsonParser
instead
-
JsonMappingException
@Deprecated public JsonMappingException(java.lang.String msg, java.lang.Throwable rootCause)
Deprecated.Since 2.7 Use variant that takesJsonParser
instead
-
JsonMappingException
@Deprecated public JsonMappingException(java.lang.String msg, com.fasterxml.jackson.core.JsonLocation loc)
Deprecated.Since 2.7 Use variant that takesJsonParser
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 takesJsonParser
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
-
from
public static JsonMappingException from(DeserializationContext ctxt, java.lang.String msg)
- Since:
- 2.7
-
from
public static JsonMappingException from(DeserializationContext ctxt, java.lang.String msg, java.lang.Throwable t)
- Since:
- 2.7
-
from
public static JsonMappingException from(SerializerProvider ctxt, java.lang.String msg)
- Since:
- 2.7
-
from
public static JsonMappingException from(SerializerProvider ctxt, 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" anIOException
intoJsonMappingException
: 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
-
prependPath
public void prependPath(JsonMappingException.Reference r)
-
getProcessor
public java.lang.Object getProcessor()
- Overrides:
getProcessor
in classcom.fasterxml.jackson.core.JsonProcessingException
-
getLocalizedMessage
public java.lang.String getLocalizedMessage()
- Overrides:
getLocalizedMessage
in classjava.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 classcom.fasterxml.jackson.core.JsonProcessingException
-
_buildMessage
protected java.lang.String _buildMessage()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classcom.fasterxml.jackson.core.JsonProcessingException
-
_appendPathDesc
protected void _appendPathDesc(java.lang.StringBuilder sb)
-
-