On 27/12/2020 09:50, Gunnar Morling wrote:
Thanks for clarifying, Alan. So it is intended and well-documented,
it's still not quite clear to me though *why* that is. Wouldn#t it be
more in line with the module system's goal of reliability to reject
such error-prone configuration?
Reliable configuration is mostly about ensuring that there aren't
missing dependencies, cycles between dependencies, or split packages.
You get reliability with the module path by only reading the first
definition of a module. If someone put 10 versions of the same module on
the module path then classes will only be loaded from the first module,
unlike the class path where you risk loading classes from more than one
of the artifacts.
If it helps, the java --validate-modules option is useful for detecting
and reporting issues. It will print an informational message when there
are multiple definitions of a module on the module path.
-Alan