[jdk23u] Integrated: 8341966: Broken annotated module may lead to an exception in javac

Jan Lahoda jlahoda at openjdk.org
Fri Oct 25 08:33:12 UTC 2024


On Thu, 17 Oct 2024 09:28:30 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:

> Hi all,
> 
>     This pull request contains a backport of commit [7ff4ea8d](https://github.com/openjdk/jdk/commit/7ff4ea8d01c681b90ad59be04007557d84c8db94) from the [openjdk/jdk](https://git.openjdk.org/jdk) repository.
> 
>     The commit being backported was authored by Jan Lahoda on 17 Oct 2024 and was reviewed by Adam Sotona.
> 
>     Thanks!
> 
> The original description:
> 
> Consider a `module-info.class`, that both:
>  - is wrong, so it will produce a bad-classfile error, for example due to an illegal `requires transitive java.base;`
>  - and the module is annotated
> 
> If the javac proceeds to resolve the annotations (which is not the default, but can be pushed to do it), it will crash with an `AssertionError` while trying to un-proxy the annotations. This is because there's an assert that `requestingOwner.owner.kind == MDL`, but since the module is erroneous, the kind is `ERR`, and the assert fails.
> 
> The proposal is to loosen the assert a bit, and require `requestingOwner.owner instanceof ModuleSymbol`. That should still be sufficiently strong, while permitting broken modules to be handled.

This pull request has now been integrated.

Changeset: b9e89a80
Author:    Jan Lahoda <jlahoda at openjdk.org>
URL:       https://git.openjdk.org/jdk23u/commit/b9e89a80dc0067a4b04756510df5443418525229
Stats:     94 lines in 2 files changed: 90 ins; 0 del; 4 mod

8341966: Broken annotated module may lead to an exception in javac

Reviewed-by: asotona, vromero
Backport-of: 7ff4ea8d01c681b90ad59be04007557d84c8db94

-------------

PR: https://git.openjdk.org/jdk23u/pull/192


More information about the jdk-updates-dev mailing list