code: public static Throwable unwrapForPresentation(Throwable throwable) {
          if (throwable == null) {
              return null;
          }
          while (throwable instanceof ExecutionException || throwable instanceof IllegalStateException
                  || throwable.getClass() == RuntimeException.class) {
              // unwrap causes from wrapping exceptions
              final Throwable cause = throwable.getCause();
              if (cause == null) {
                  break;
              }
              final String message = throwable.getMessage();
              if (Strings.isNullOrEmpty(message) || cause.toString().equals(message)) {
                  // run another iteration
                  throwable = cause;
              } else {
                  break;
              }
          }
          return throwable;
      }
docs: Unwraps an exception for presentation to the user. This method will
  remove unnecesary/irrelevant wrapping exceptions if possible.
  
  @param throwable
  @return