code: @GwtIncompatible("incompatible method")
      private static Throwable getCauseUsingMethodName(final Throwable throwable, final String methodName) {
          Method method = null;
          try {
              method = throwable.getClass().getMethod(methodName);
          } catch (final NoSuchMethodException | SecurityException ignored) { // NOPMD
              // exception ignored
          }
  
          if (method != null && Throwable.class.isAssignableFrom(method.getReturnType())) {
              try {
                  return (Throwable) method.invoke(throwable);
              } catch (final IllegalAccessException | IllegalArgumentException | InvocationTargetException ignored) { // NOPMD
                  // exception ignored
              }
          }
          return null;
      }
docs: TODO: Remove in Lang 4.0