Question on Implied readability

Ali Ebrahimi ali.ebrahimi1781 at
Tue Nov 3 08:14:49 UTC 2015

Hi Frank,
*I think Alex's interpretation of *implied readability is consistent with
current definition of concept and expected behavior.
Based on your intention public modifier should mean:
com.baz embeds in itself and exports packages for com.baz's
readers and does not reads module
If this is expected behavior (that I don't think so) why we use:
 'require public' instead of 'includes'?

On Tue, Nov 3, 2015 at 7:37 AM, Frank Yuan <frank.yuan at> wrote:

> >
> Hi Alex
> I don't think so. com.baz declares "requires public", so com.baz
> decide which is readable, in this case, decide which is
> used by
> Consider the following scenario, which is the common usage of implied
> readability
> com.baz provides the following service:
> public Object1 getObject();
> Object1 is a class defined in, please not at 2 is not
> visible to com.baz(indeed to avoid conflict, only one can be
> visible/readable to com.baz), so com.baz construct an Object1 of at 1
> during getObject() is invoked, and then get this Object1 instance,
> now can only use type Object1 of at 1 to interpret it, who
> guarantee what Object1 of at 2 is?! So here the type must be
> definite, M2 requires public M1,  M3 requires M2, then which M1 is read by
> M2, which M1 must be readable to M3. It's not related to Layer actually.

This would arise error as of pre-jigsaw with multiple classloaders and
I think completed related to layer. Intention of Layers is to handle such

> Frank

Best Regards,
Ali Ebrahimi

More information about the jigsaw-dev mailing list