On 05/10/2018 22:23, Thomas Watson wrote:
:

When launching Java I can use a module path that includes automatic modules
along with normal modules that require the automatic module names.
Everything works as expected, my normal modules are able to access the
packages included in the automatic module as if they are exported.  Now I
try to use the ModuleLayer API to create a new layer which includes the
same set of automatic and normal modules.  If I use one of
the defineModulesWithOneLoader method it all works just like it would when
loading them from the module path.  But if I instead use one of
the defineModulesWithManyLoaders my normal modules that requires one of the
automatic modules can no longer load classes from the automatic module.
You are correct. For module M1 and M2, mapped to class loaders L1 and L2: if M1 reads M2 then L1 needs to delegate to L2 for each package that M2 exports to M1. If M2 is an automatic module then it doesn't have any exports to this is why the delegation isn't setup. I'll create a bug for this.

-Alan

Reply via email to