no error when module exports non-existing package

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Dec 2 18:08:58 UTC 2015



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