com.fasterxml.jackson.core.JsonProcessingException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
/* Jackson JSON-processor.
*
* Copyright (c) 2007- Tatu Saloranta, [email protected]
*/
package com.fasterxml.jackson.core;
/**
* Intermediate base class for all problems encountered when
* processing (parsing, generating) JSON content
* that are not pure I/O problems.
* Regular {@link java.io.IOException}s will be passed through as is.
* Sub-class of {@link java.io.IOException} for convenience.
*/
public class JsonProcessingException
extends java.io.IOException
{
final static long serialVersionUID = 123; // Stupid eclipse...
protected JsonLocation _location;
protected JsonProcessingException(String msg, JsonLocation loc, Throwable rootCause)
{
/* Argh. IOException(Throwable,String) is only available starting
* with JDK 1.6...
*/
super(msg);
if (rootCause != null) {
initCause(rootCause);
}
_location = loc;
}
protected JsonProcessingException(String msg)
{
super(msg);
}
protected JsonProcessingException(String msg, JsonLocation loc)
{
this(msg, loc, null);
}
protected JsonProcessingException(String msg, Throwable rootCause)
{
this(msg, null, rootCause);
}
protected JsonProcessingException(Throwable rootCause)
{
this(null, null, rootCause);
}
public JsonLocation getLocation() {
return _location;
}
/*
/**********************************************************
/* Extended API
/**********************************************************
*/
/**
* Method that allows accessing the original "message" argument,
* without additional decorations (like location information)
* that overridden {@link #getMessage} adds.
*
* @since 2.1
*/
public String getOriginalMessage()
{
return super.getMessage();
}
/*
/**********************************************************
/* Methods for sub-classes to use, override
/**********************************************************
*/
/**
* Accessor that sub-classes can override to append additional
* information right after the main message, but before
* source location information.
*/
protected String getMessageSuffix() {
return null;
}
/*
/**********************************************************
/* Overrides of standard methods
/**********************************************************
*/
/**
* Default method overridden so that we can add location information
*/
@Override
public String getMessage()
{
String msg = super.getMessage();
if (msg == null) {
msg = "N/A";
}
JsonLocation loc = getLocation();
String suffix = getMessageSuffix();
// mild optimization, if nothing extra is needed:
if (loc != null || suffix != null) {
StringBuilder sb = new StringBuilder(100);
sb.append(msg);
if (suffix != null) {
sb.append(suffix);
}
if (loc != null) {
sb.append('\n');
sb.append(" at ");
sb.append(loc.toString());
}
msg = sb.toString();
}
return msg;
}
@Override
public String toString() {
return getClass().getName()+": "+getMessage();
}
}