<div dir="ltr"><div><div>
      <div>
        <div>
          <div>
            <div>
              <div>
                <div>Hello,<br>
                  <br>
                </div>When running Jtreg test suite with jdk9, the test: <font size="2">java/net/SetFactoryPermission/SetFactoryPermission.java fails with the exception: </font><br>
                <pre><font size="2">java.lang.Error: factory already defined  </font></pre> <font size="2"><br>
                </font><font size="2">This error only happens when: </font><font size="2"><font size="2">java/net/HandlerLoop.java is run before java/net/SetFactoryPermission/SetFactoryPermission.java within the same agent. </font>This is explained by the fact that in java/net/HandlerLoop.java calls the setter </font><font size="2">URL.setURLStreamHandlerFactory is called with a non-null parameter, which can be called only once in a JVM instance according to the JAVA API.</font><br></div></div><font size="2"> <br>Consequently the VM that run</font><font size="2">s java/net/HandlerLoop.java is invalid for running</font><font size="2"> </font> <font size="2">java/net/SetFactoryPermission/SetFactoryPermission.java.</font></div>
        </div>
        <font size="2"><br>To solve that problem, an annotation could be added to the test java/net/HandlerLoop.java to tell Jtreg runner to spawn</font><font size="2"> a new VM for that test.</font><br></div><font size="2"> <br></font><br></div><div>Note: This is reproducible using the -agentvm and setting the concurrency to 1 and also renaming<br></div><div>the package of one of the tests to force it to be executed first.<br></div><div>Reproducible always with jdk9. <br></div><br><font size="2">Best regards,<br>Imane EL Maakoul<br></font></div></div>