--- old/src/java.base/share/classes/java/lang/module/Configuration.java 2017-03-21 13:43:55.408898946 +0000 +++ new/src/java.base/share/classes/java/lang/module/Configuration.java 2017-03-21 13:43:55.211885428 +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 parents, @@ -152,7 +149,6 @@ this.osName = resolver.osName(); this.osArch = resolver.osArch(); - this.osVersion = resolver.osVersion(); } /** @@ -281,6 +277,7 @@ * observability-related reasons:

* * * *

Post-resolution consistency checks may fail with {@code @@ -306,6 +296,10 @@ *

  • A cycle is detected, say where module {@code m1} requires * module {@code m2} and {@code m2} requires {@code m1}.

  • * + *
  • 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.

  • + * *
  • 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 @@ * * * @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 before module finder to find modules