On 07-Jan-21 11:01, Alan Bateman wrote:
On 06/01/2021 23:49, Johannes Kuhn wrote:
Indeed a bug.

Happens under the following conditions:
* Patched module is an automatic module
* Patch adds one or more additional packages to the module.

:

Proposed fix:
* Change requires to not check if it is an automatic module if the builder is not strict.
* Move the copying of the requires out of the if.

Thanks for the mails, it is bug. The additional information that the patch adds packages to the automatic module was important to understand the mails. One other thing is that the bug does not surface when the set of root modules includes an explicit module or an unpatched automatic module. So very obscure scenario that probably explains why there hasn't been reported before now.

The patcher should be using strict mode when re-building the module descriptor for a patched automatic modules. The non-strict mode is for explicit modules as the identifiers (that may not be valid in the Java Language) are read from the module-info.class. I'll create a bug for this.

Even better fix.

To be honest - I don't quite understand the bug - but I was able to reproduce it. So I did manually retrace the code to see where the difference was happening, and found the lines above - which was "good enough" for an explanation.

Is there a way to debug the early java initialization? I didn't got that working, so had to do it by hand.


-Alan.

- Johannes

Reply via email to