code: protected <T> T instantiateClass(Class<T> clazz) throws Throwable {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "instantiateClass", clazz);
          }
          T object = null;
          try {
              object = clazz.newInstance();
          } catch (Throwable e) {
              Tr.error(tc, BVNLSConstants.BVKEY_CLASS_NOT_FOUND, new Object[] { ivBVContext.getPath(), clazz, e });
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Unable to create a ValidationFactory because of ", e);
              }
              throw e;
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "instantiateClass", object);
          }
          return object;
      }
docs: Load the class on the application class loader given the class name. More specifically,
  the class will be loaded using which ever class loader already loaded the class, which
  is handled by {@link #loadClass(String)}.
  
  @param <T> the type of the class to be instantiated
  @param clazz - class cannot be null.