title: module java.base does not read module java.desktop
body: <p>When I run this test (using jmockit and TestNG, not sure if that's relevant):</p>
  
  <pre><code>public class Test {
    @Test public void test(@Mocked ProcessBuilder pb) throws IOException {
      new Expectations() {{ pb.start(); result = null; }};
      assertNull(m());
    }
  
    public static Process m() throws IOException {
      return new ProcessBuilder("").start();
    }
  }
  </code></pre>
  
  <p>I get this exception:</p>
  
  <pre><code>java.lang.IllegalAccessError: class java.lang.ProcessBuilder (in module java.base) cannot access class javax.print.PrintException (in module java.desktop) because module java.base does not read module java.desktop
  
  at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java)
  ....
  </code></pre>
  
  <p>I am using build 177.</p>
  
  <p>I can rerun the test using <code>--add-reads java.base=java.desktop</code> argument and it works fine but I don't really understand what is happening here.</p>
  
  <p><strong>Why am I getting that exception?</strong></p>