code: public static Throwable stripException(Throwable throwableToStrip, Class<? extends Throwable> typeToStrip) {
  		while (typeToStrip.isAssignableFrom(throwableToStrip.getClass()) && throwableToStrip.getCause() != null) {
  			throwableToStrip = throwableToStrip.getCause();
  		}
  
  		return throwableToStrip;
  	}
docs: Unpacks an specified exception and returns its cause. Otherwise the given
  {@link Throwable} is returned.
  
  @param throwableToStrip to strip
  @param typeToStrip type to strip
  @return Unpacked cause or given Throwable if not packed