RFR: 8376534: Source launcher instantiates wrong class on inherited instance main [v2]
Jonathan László Lampérth
jlamperth at openjdk.org
Wed Feb 4 21:45:49 UTC 2026
> Fix a bug where, for inherited instance main methods, the source launcher attempts to invoke main on an instance of the superclass/superinterface that declares main, instead of on an instance of the inheriting class.
>
> <details closed>
> <summary>Failure Example</summary>
>
>
> // A.java
> class A extends B {}
>
> // B.java
> class B {
> void main() {
> System.out.println(getClass().getName());
> }
> }
>
>
>
> $ java A.java
> B // expected "A" here
>
> $ java B.java
> B
> ```
> </details>
>
> Note: There is still an issue with inheriting main from a different package in modular mode, which will be handled separately [JDK-8377010](https://bugs.openjdk.org/browse/JDK-8377010)
Jonathan László Lampérth has updated the pull request incrementally with one additional commit since the last revision:
Add JBS ID to @bug in test
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29550/files
- new: https://git.openjdk.org/jdk/pull/29550/files/caa72b71..8adfad3e
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29550&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29550&range=00-01
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/29550.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29550/head:pull/29550
PR: https://git.openjdk.org/jdk/pull/29550
More information about the compiler-dev
mailing list