no error when module exports non-existing package

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Dec 2 18:09:44 UTC 2015


Adding Victor back into the recipients.

-- Jon

On 12/02/2015 10:08 AM, Jonathan Gibbons wrote:
>
>
> On 12/02/2015 09:41 AM, Victor Rudometov wrote:
>> Hi,
>> Javac does not complain if user exports a package that does not 
>> exist. If it was not done intentionally, it would be good to report 
>> an error, or at least a warning.
>> Today was the third time I saw the code with a typo or just incorrect 
>> package name in module-info's exports statement.
>>
>> Thanks.
>> Victor.
>>
>
> I agree we should improve javac in this area. We probably need some 
> spec clarification from Alex on the intent here. See JLS 8, 7.4.3 
> Observability of a package.  In particular, that says that a package 
> is observable if a subpackage is observable.  javac tries to honor 
> that specification, but there are well known hard-to-fix bugs in this 
> area.
>
> As for module declarations,   if  p.q.Class exists in a module and no 
> other classes anywhere in p or its subpackages, is it OK to export p 
> from the module?  From the point of view of the module, the package is 
> observable, but it seems intuitively wrong to allow an export of a 
> package that contains no types.  In other words, if we are going to 
> catch typos in exported package names, I think we ought to consider 
> "empty" packages as well as mistyped packages.
>
> -- Jon



More information about the jigsaw-dev mailing list