You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@parquet.apache.org by "nastra (via GitHub)" <gi...@apache.org> on 2026/07/03 13:04:29 UTC
[PR] GH-3644: Handle NoClassDefFoundError in DynMethods [parquet-java]
nastra opened a new pull request, #3645:
URL: https://github.com/apache/parquet-java/pull/3645
<!--
Thanks for opening a pull request!
If you're new to Parquet-Java, information on how to contribute can be found here: https://parquet.apache.org/docs/contribution-guidelines/contributing
Please open a GitHub issue for this pull request: https://github.com/apache/parquet-java/issues/new/choose
and format pull request title as below:
GH-${GITHUB_ISSUE_ID}: ${SUMMARY}
or simply use the title below if it is a minor issue:
MINOR: ${SUMMARY}
-->
### Rationale for this change
All of the `Dyn*` classes use `Class.forName(className, true, loader)` and catch `ClassNotFoundException` when probing for optional implementations by class name, but `Class.forName` can also throw `NoClassDefFoundError` when the class itself is found but one of its transitive dependencies is missing. It can also throw `ExceptionInInitializerError` when the static initializer of the loaded class fails.
We're intentionally not handling `ExceptionInInitializerError` and propagate it to the caller.
`DynConstructors` already handles `ClassNotFoundException` and `NoClassDefFoundError` while `DynMethods` only handles `ClassNotFoundException`
This issue is similar to https://github.com/apache/iceberg/pull/16793 and https://github.com/apache/iceberg/pull/16611 that we're fixing on the Iceberg side.
Closes #3644
### What changes are included in this PR?
### Are these changes tested?
yes, added new tests to verify that `DynConstructors` and `DynMethods` behave correctly
### Are there any user-facing changes?
no
<!-- Please uncomment the line below and replace ${GITHUB_ISSUE_ID} with the actual Github issue id. -->
<!-- Closes #${GITHUB_ISSUE_ID} -->
--
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: issues-unsubscribe@parquet.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@parquet.apache.org
For additional commands, e-mail: issues-help@parquet.apache.org
Re: [PR] GH-3644: Handle NoClassDefFoundError in DynMethods [parquet-java]
Posted by "wgtmac (via GitHub)" <gi...@apache.org>.
wgtmac merged PR #3645:
URL: https://github.com/apache/parquet-java/pull/3645
--
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: issues-unsubscribe@parquet.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@parquet.apache.org
For additional commands, e-mail: issues-help@parquet.apache.org