code: @Override
      public Response toResponse(JsonProcessingException exception) {
          Throwable throwable = exception;
          while (throwable != null) {
              if (throwable instanceof PersistenceException) {
                  return exceptionMappers.get().findMapping(throwable).toResponse(throwable);
              }
              throwable = throwable.getCause();
          }
  
          logger.debug("Json Processing error", exception);
          String message = exception.getOriginalMessage();
          String desc = null;
          String source = null;
          if (mode.isDev()) {
              desc = IOUtils.getStackTrace(exception);
              JsonLocation location = exception.getLocation();
              if (location != null) {
                  source = "line: " + location.getLineNr() +
                          ", column: " + location.getColumnNr();
              } else {
                  source = exception.getStackTrace()[0].toString();
              }
          }
  
          ErrorMessage errorMessage = ErrorMessage.fromStatus(Response.Status.BAD_REQUEST.getStatusCode());
          errorMessage.setThrowable(exception);
          errorMessage.setCode(Hashing.murmur3_32().hashUnencodedChars(exception.getClass().getName()).toString());
  
          errorMessage.addError(new Result.Error(
                  errorMessage.getCode(),
                  message != null ? message : exception.getMessage(),
                  desc,
                  source
          ));
  
          return Response.status(errorMessage.getStatus())
                  .entity(errorMessage)
                  .type(ExceptionMapperUtils.getResponseType())
                  .build();
      }
docs: {@inheritDoc}