yittg commented on pull request #3797: URL: https://github.com/apache/iceberg/pull/3797#issuecomment-1011659358
> In this case, it looks like the [reader used to load the file's key-value metadata](https://github.com/apache/iceberg/blob/master/core/src/main/java/org/apache/iceberg/ManifestReader.java#L100-L102) doesn't have the class loader set like the [reader used to scan the manifest](https://github.com/apache/iceberg/blob/master/core/src/main/java/org/apache/iceberg/ManifestReader.java#L207). I would first try setting the class loader the same way. @rdblue It's also my first choice, FYI https://github.com/apache/iceberg/issues/3776#issuecomment-998502908, but it's not enough, as described in my comment, you can not pass the correct one to all cases in the dependencies. > For example, the follow code snippet in [java.xml](https://github.com/openjdk/jdk/blob/jdk-11%2B12/src/java.xml/share/classes/javax/xml/parsers/FactoryFinder.java#L285) > ``` > final ServiceLoader<T> serviceLoader = ServiceLoader.load(type); > ``` IMO, the right way is not to use the static shared thread pool. But it's hard to fix here, the shared pool is involved in too many places. So i choose this quick fix to walk around it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
