private static String formatProblems(Map<String, Throwable> problems) {
    StringBuilder sb = new StringBuilder();
    boolean first = true;
    for (Map.Entry<String, Throwable> problem : problems.entrySet()) {
      if (first) {
        first = false;
      } else {
        sb.append("\n");
      }
      sb.append("\tMissing ")
          .append(problem.getKey())
          .append(" [")
          .append(problem.getValue().getClass().getName())
          .append(": ")
          .append(problem.getValue().getMessage())
          .append("]");
    }
    return sb.toString();
  }
Set the {@link ClassLoader} used to lookup classes by name.

<p>If not set, the current thread's ClassLoader is used.

@param newLoader a ClassLoader
@return this Builder for method chaining
amoro-common/src/main/java/org/apache/amoro/utils/DynConstructors.java