@Override
  public @Nullable Class<?> findClass(String fileName, String className, JarLoader jarLoader, ClassPath.ClassDataConsumer classConsumer)
    throws IOException {
    if (!defineClassUsingBytes && classConsumer.isByteBufferSupported(className)) {
      ByteBuffer buffer = zipFile.getByteBuffer(fileName);
      if (buffer == null) {
        return null;
      }

      try {
        return classConsumer.consumeClassData(className, buffer);
      }
      finally {
        zipFile.releaseBuffer(buffer);
      }
    }
    else {
      byte[] data = zipFile.getData(fileName);
      if (data == null) {
        return null;
      }
      return classConsumer.consumeClassData(className, data);
    }
  }
@Override
  public @Nullable Class<?> findClass(String fileName, String className, JarLoader jarLoader, ClassPath.ClassDataConsumer classConsumer)