changeset 31685:6a6e995cf912

8104574: Update tests to prepare for system class loader not be URLClassLoader Reviewed-by: chegar
author mchung
date Wed, 15 Jul 2015 12:10:03 +0800
parents 5c7dc133b086
children d3da32009b1d d6eb4f028c60
files jdk/test/java/lang/reflect/Generics/ThreadSafety.java
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/jdk/test/java/lang/reflect/Generics/ThreadSafety.java	Tue Jul 14 22:21:52 2015 -0400
+++ b/jdk/test/java/lang/reflect/Generics/ThreadSafety.java	Wed Jul 15 12:10:03 2015 +0800
@@ -28,8 +28,11 @@
  * @run testng ThreadSafety
  */
 
+import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Collections;
 import java.util.concurrent.BrokenBarrierException;
 import java.util.concurrent.Callable;
@@ -71,9 +74,13 @@
     /** published via data race */
     private Class<?> racyClass = Object.class;
 
-    private URL[] urls = ((URLClassLoader) ThreadSafety.class.getClassLoader()).getURLs();
-
     private Class<?> createNewEmptyGenericSubclassClass() throws Exception {
+        String[] cpaths = System.getProperty("test.classes", ".")
+                                .split(File.pathSeparator);
+        URL[] urls = new URL[cpaths.length];
+        for (int i=0; i < cpaths.length; i++) {
+            urls[i] = Paths.get(cpaths[i]).toUri().toURL();
+        }
         URLClassLoader ucl = new URLClassLoader(urls, null);
         return Class.forName("ThreadSafety$EmptyClass$EmptyGenericSubclass", true, ucl);
     }