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

org.terracotta.management.resource.exceptions.ExceptionUtils Maven / Gradle / Ivy

Go to download

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.

There is a newer version: 2.10.9.2
Show newest version
package org.terracotta.management.resource.exceptions;

import java.lang.reflect.InvocationTargetException;

/**
 * Misc. utility methods that work on exceptions.
 *
 * @author Ludovic Orban
 */
public class ExceptionUtils {

  public static Throwable getRootCause(Throwable t) {
    Throwable last = null;
    while (t != null && t != last) {
      last = t;
      t = t.getCause();
    }
    if (last instanceof InvocationTargetException) {
      last = ((InvocationTargetException)last).getTargetException();
    }
    return last;
  }

  public static String toJsonError(Throwable t) {
    String errorMessage;
    if (t == null) {
      errorMessage = "";
    } else {
      String message = t.getMessage();
      errorMessage = message == null ? "" : message.replace('\"', '\'');
    }

    String extraErrorMessage = "";
    Throwable rootCause = getRootCause(t);
    if (rootCause != t && rootCause != null && rootCause.getMessage() != null) {
      extraErrorMessage = rootCause.getMessage().replace('\"', '\'');
    }

    return String.format("{\"error\" : \"%s\" , \"details\" : \"%s\"}", errorMessage, extraErrorMessage);
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy