java/net/SetFactoryPermission/SetFactoryPermission.java fails with error "factory already defined"

EL MAAKOUL IMANE maakoulimane at gmail.com
Thu Sep 8 11:19:16 UTC 2016


 Hello,

When running Jtreg test suite with jdk9, the test:
java/net/SetFactoryPermission/SetFactoryPermission.java
fails with the exception:

java.lang.Error: factory already defined


This error only happens when: java/net/HandlerLoop.java is run before
java/net/SetFactoryPermission/SetFactoryPermission.java within the same
agent. This is explained by the fact that in java/net/HandlerLoop.java
calls the setter URL.setURLStreamHandlerFactory is called with a non-null
parameter, which can be called only once in a JVM instance according to the
JAVA API.

Consequently the VM that runs java/net/HandlerLoop.java is invalid for
running java/net/SetFactoryPermission/SetFactoryPermission.java.

To solve that problem, an annotation could be added to the test
java/net/HandlerLoop.java to tell Jtreg runner to spawn a new VM for that
test.


Note: This is reproducible using the -agentvm and setting the concurrency
to 1 and also renaming
the package of one of the tests to force it to be executed first.
Reproducible always with jdk9.

Best regards,
Imane EL Maakoul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/jtreg-use/attachments/20160908/ab42a3cd/attachment.html>


More information about the jtreg-use mailing list