code: protected Class<?> classForName(String name) throws ClassNotFoundException {
        try {
          ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
          if (contextClassLoader != null) {
            return Class.forName(name, false, contextClassLoader);
          }
        } catch (Throwable e) {
          // ignore
        }
        return Class.forName(name, false, getClass().getClassLoader());
      }
docs: rbygrave: Extracted Class.forName() such that externally supplied classLoader may be used
  by overriding this method.