[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-hotspot-runtime-dev
Subject: Re: RFR: 8286571: java source launcher from a minimal jdk image containing jdk.compiler fails with -
From: Jaikiran Pai <jpai () openjdk ! java ! net>
Date: 2022-05-18 2:53:49
Message-ID: nrGBwA6vmG_fJoHfhXkK90t94mEseybWdkeYC5QAxiw=.109d7fb0-9fd8-4e11-a03e-b796c78d3e5e () github ! com
[Download RAW message or body]
On Tue, 17 May 2022 13:08:32 GMT, Adam Sotona <asotona@openjdk.org> wrote:
> > ### Problem description
> > Minimal jdk image created by jlink with the only jdk.compiler module and its \
> > dependencies fails to run java source launcher correctly (for example when \
> > --source N is specified). Failing source launcher is only one the expressions of \
> > internal jdk.compiler malfunction, another example is failure to run javac with \
> > --release option.
> > ### Root cause
> > Module jdk.compiler requires zip filesystem (jdk.zipfs module) to parse ct.sym \
> > file and so to provide full functionality. Module jdk.zipfs is not included in \
> > the minimal JDK image, because module jdk.compiler does not declare it as \
> > "requires" in its module info.
> > ### Alternative patch
> > The problem can be alternatively resolved by complex code checks in jdk.compiler \
> > to provide user with valid error message, however that solution would be just a \
> > workaround for jdk.compiler dual functionality (with or without presence of \
> > jdk.zipfs module). Compiler functionality without access to ct.sym through \
> > jdk.zipfs is very limited.
> > ### Proposed fix
> > This patch fixes the problem by explicit declaration of jdk.compiler dependency \
> > on jdk.zipfs. Plus added specific test case.
> >
> > Please review the patch or raise objections against declaration of jdk.compiler \
> > dependent on jdk.zipfs.
> > Thanks,
> > Adam
>
> Adam Sotona has updated the pull request incrementally with one additional commit \
> since the last revision:
> fix of LimitedImage test
Hello Adam, I don't have necessary knowledge of this area, so I don't know what \
approach would be preferred.
But a couple of questions:
- If we do decide to add the `jdk.zipfs` dependency to `jdk.compiler` module, do you \
think the `LimitedImage` test is still relevant? Or should it be removed? The comment \
on that test states:
> @summary Verify javac behaves properly in absence of zip/jar FileSystemProvider
and it does so by using `--limit-modules`. But now with the `jdk.zipfs` being a \
dependency, the zip/jar FileSystemProvider will not be absent and the test then would \
seem unnecessary.
- In the JBS issue corresponding to this PR, you noted that:
> There are actually two different issues:
>
> First in JDKPlatformProvider, which silently swallows ProviderNotFoundException.
Should something be done there? I see that the catch block happens to reside in the \
`static` block of that class (which also happens to be a implementation of a Java \
`service`), so I'm unsure what if anything can be done there.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8747
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic