code: public static void tryDeserializeAndThrow(Throwable throwable, ClassLoader classLoader) throws Throwable {
  		Throwable current = throwable;
  
  		while (!(current instanceof SerializedThrowable) && current.getCause() != null) {
  			current = current.getCause();
  		}
  
  		if (current instanceof SerializedThrowable) {
  			throw ((SerializedThrowable) current).deserializeError(classLoader);
  		} else {
  			throw throwable;
  		}
  	}
docs: Tries to find a {@link SerializedThrowable} as the cause of the given throwable and throws its
  deserialized value. If there is no such throwable, then the original throwable is thrown.
  
  @param throwable to check for a SerializedThrowable
  @param classLoader to be used for the deserialization of the SerializedThrowable
  @throws Throwable either the deserialized throwable or the given throwable