All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.groupbyinc.common.jackson.core.JsonParseException Maven / Gradle / Ivy

There is a newer version: 198
Show newest version
/* Jackson JSON-processor.
 *
 * Copyright (c) 2007- Tatu Saloranta, [email protected]
 */

package com.fasterxml.jackson.core;

import com.fasterxml.jackson.core.util.RequestPayload;

/**
 * Exception type for parsing problems, used when non-well-formed content
 * (content that does not conform to JSON syntax as per specification)
 * is encountered.
 */
public class JsonParseException extends JsonProcessingException {
    private static final long serialVersionUID = 2L; // 2.7

    // transient since 2.7.4
    protected transient JsonParser _processor;

    /**
     * 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.
     *
     * @since 2.8
     */
    protected RequestPayload _requestPayload;

    @Deprecated // since 2.7
    public JsonParseException(String msg, JsonLocation loc) {
        super(msg, loc);
    }

    @Deprecated // since 2.7
    public JsonParseException(String msg, JsonLocation loc, Throwable root) {
        super(msg, loc, root);
    }

    /**
     * Constructor that uses current parsing location as location, and
     * sets processor (accessible via {@link #getProcessor()}) to
     * specified parser.
     *
     * @since 2.7
     */
    public JsonParseException(JsonParser p, String msg) {
        super(msg, (p == null) ? null : p.getCurrentLocation());
        _processor = p;
    }

    /**
     * @since 2.7
     */
    public JsonParseException(JsonParser p, String msg, Throwable root) {
        super(msg, (p == null) ? null : p.getCurrentLocation(), root);
        _processor = p;
    }

    /**
     * @since 2.7
     */
    public JsonParseException(JsonParser p, String msg, JsonLocation loc) {
        super(msg, loc);
        _processor = p;
    }

    /**
     * @since 2.7
     */
    public JsonParseException(JsonParser p, String msg, JsonLocation loc, Throwable root) {
        super(msg, loc, root);
        _processor = p;
    }

    /**
     * Fluent method that may be used to assign originating {@link JsonParser},
     * to be accessed using {@link #getProcessor()}.
     *

* NOTE: `this` instance is modified and no new instance is constructed. * * @since 2.7 */ public JsonParseException withParser(JsonParser p) { _processor = p; return this; } /** * 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. * * @since 2.8 */ public JsonParseException withRequestPayload(RequestPayload p) { _requestPayload = p; return this; } @Override public JsonParser getProcessor() { return _processor; } /** * Method that may be called to find payload that was being parsed, if * one was specified for parser that threw this Exception. * * @return request body, if payload was specified; `null` otherwise * * @since 2.8 */ public RequestPayload getRequestPayload() { return _requestPayload; } /** * The method returns the String representation of the request payload if * one was specified for parser that threw this Exception. * * @return request body as String, if payload was specified; `null` otherwise * * @since 2.8 */ public String getRequestPayloadAsString() { return (_requestPayload != null) ? _requestPayload.toString() : null; } /** * Overriding the getMessage() to include the request body */ @Override public String getMessage() { String msg = super.getMessage(); if (_requestPayload != null) { msg += "\nRequest payload : " + _requestPayload.toString(); } return msg; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy