--- old/src/java.base/share/classes/java/lang/Module.java 2017-04-20 14:26:33.230151455 -0400 +++ new/src/java.base/share/classes/java/lang/Module.java 2017-04-20 14:26:32.666151432 -0400 @@ -126,7 +126,7 @@ // define module to VM - boolean isOpen = descriptor.isOpen(); + boolean isOpen = descriptor.isOpen() || descriptor.isAutomatic(); Version version = descriptor.version().orElse(null); String vs = Objects.toString(version, null); String loc = Objects.toString(uri, null); @@ -1042,9 +1042,6 @@ if (syncVM) { // throws IllegalStateException if defined to another module addPackage0(this, pn); - if (descriptor.isOpen() || descriptor.isAutomatic()) { - addExportsToAll0(this, pn); - } } extraPackages.putIfAbsent(pn, Boolean.TRUE); } @@ -1207,14 +1204,10 @@ Map nameToSource, Map nameToModule, List parents) { - // The VM doesn't special case open or automatic modules so need to - // export all packages + // The VM special cases open and automatic modules so don't need to + // export their packages ModuleDescriptor descriptor = m.getDescriptor(); if (descriptor.isOpen() || descriptor.isAutomatic()) { - assert descriptor.opens().isEmpty(); - for (String source : descriptor.packages()) { - addExportsToAll0(m, source); - } return; }