jdk/src/java.base/share/classes/java/lang/module/Configuration.java
changeset 44359 c6761862ca0b
parent 43712 5dfd0950317c
child 44545 83b611b88ac8
--- a/jdk/src/java.base/share/classes/java/lang/module/Configuration.java	Thu Mar 16 16:34:36 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/lang/module/Configuration.java	Wed Mar 22 16:26:27 2017 +0000
@@ -112,11 +112,9 @@
     // module constraints on target
     private final String osName;
     private final String osArch;
-    private final String osVersion;
 
     String osName() { return osName; }
     String osArch() { return osArch; }
-    String osVersion() { return osVersion; }
 
     private Configuration() {
         this.parents = Collections.emptyList();
@@ -125,7 +123,6 @@
         this.nameToModule = Collections.emptyMap();
         this.osName = null;
         this.osArch = null;
-        this.osVersion = null;
     }
 
     private Configuration(List<Configuration> parents,
@@ -152,7 +149,6 @@
 
         this.osName = resolver.osName();
         this.osArch = resolver.osArch();
-        this.osVersion = resolver.osVersion();
     }
 
     /**
@@ -281,6 +277,7 @@
      * <em>observability-related</em> reasons: </p>
      *
      * <ul>
+     *
      *     <li><p> A root module, or a direct or transitive dependency, is not
      *     found. </p></li>
      *
@@ -289,13 +286,6 @@
      *     descriptor ({@code module-info.class}) or two versions of the same
      *     module are found in the same directory. </p></li>
      *
-     *     <li><p> A module with the required name is found but the module
-     *     requires a different {@link ModuleDescriptor#osName() operating
-     *     system}, {@link ModuleDescriptor#osArch() architecture}, or {@link
-     *     ModuleDescriptor#osVersion() version} to other modules that have
-     *     been resolved for the new configuration or modules in the parent
-     *     configurations. </p></li>
-     *
      * </ul>
      *
      * <p> Post-resolution consistency checks may fail with {@code
@@ -306,6 +296,10 @@
      *     <li><p> A cycle is detected, say where module {@code m1} requires
      *     module {@code m2} and {@code m2} requires {@code m1}. </p></li>
      *
+     *     <li><p> A module reads two or more modules with the same name. This
+     *     includes the case where a module reads another with the same name as
+     *     itself. </p></li>
+     *
      *     <li><p> Two or more modules in the configuration export the same
      *     package to a module that reads both. This includes the case where a
      *     module {@code M} containing package {@code p} reads another module
@@ -319,8 +313,9 @@
      * </ul>
      *
      * @implNote In the implementation then observability of modules may depend
-     * on referential integrity checks that ensure different builds of tightly
-     * coupled modules are not combined in the same configuration.
+     * on referential integrity or other checks that ensure different builds of
+     * tightly coupled modules or modules for specific operating systems or
+     * architectures are not combined in the same configuration.
      *
      * @param  before
      *         The <em>before</em> module finder to find modules