public @Nullable Class<?> loadClassInsideSelf(String name,
                                                String fileName,
                                                long packageNameHash,
                                                boolean forceLoadFromSubPluginClassloader) throws IOException {
    synchronized (getClassLoadingLock(name)) {
      Class<?> c = findLoadedClass(name);
      if (c != null) {
        return c;
      }

      if (!forceLoadFromSubPluginClassloader) {
        // "self" makes sense for PluginClassLoader, but not for UrlClassLoader - our parent it is implementation detail
        ClassLoader parent = getParent();
        if (parent != null) {
          try {
            c = parent.loadClass(name);
          }
          catch (ClassNotFoundException ignore) { }
        }

        if (c != null) {
          return c;
        }
      }
      return classPath.findClass(name, fileName, packageNameHash, classDataConsumer);
    }
  }
public @Nullable Class<?> loadClassInsideSelf(String name,
                                                String fileName,
                                                long packageNameHash,
                                                boolean forceLoadFromSubPluginClassloader)