@Override
  protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
    Class c;
    if (thisIsOld()) {
      c = searchParent(name);
    } else {
      c = super.loadClass(name, resolve);
    }
    if (c == null) {
      for (DeployJarChildFirstClassLoader sibling : artifactIdsToClassLoader.values().stream()
          .filter(Objects::nonNull).collect(Collectors.toList())) {
        try {
          if (sibling.thisIsOld()) {
            continue;
          }
          c = sibling.findLoadedClass(name);
          if (c != null) {
            break;
          }
          c = sibling.findClass(name);
          if (c != null) {
            break;
          }
        } catch (ClassNotFoundException | NoClassDefFoundError ignored) {
        }
      }
    }
    return c;
  }
We override the parent-first behavior established by java.lang.Classloader.
geode-core/src/main/java/org/apache/geode/internal/classloader/DeployJarChildFirstClassLoader.java