8068578: test/java/io/Serializable/subclassGC/SubclassGC.java assumes app class loader is a URLClassLoader
Reviewed-by: alanb
diff --git a/jdk/test/java/io/Serializable/subclassGC/SubclassGC.java b/jdk/test/java/io/Serializable/subclassGC/SubclassGC.java
index 323a05e..ae16712 100644
--- a/jdk/test/java/io/Serializable/subclassGC/SubclassGC.java
+++ b/jdk/test/java/io/Serializable/subclassGC/SubclassGC.java
@@ -50,8 +50,9 @@
}
ClassLoader systemLoader = ClassLoader.getSystemClassLoader();
- ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(),
- systemLoader.getParent());
+ URL testClassesURL = new File(System.getProperty("test.classes")).toURI().toURL();
+ ClassLoader loader = new URLClassLoader(new URL[] { testClassesURL } ,
+ systemLoader.getParent());
Class<? extends ObjectOutputStream> cl =
Class.forName(SubclassOfOOS.class.getName(), false,
loader).asSubclass(ObjectOutputStream.class);
diff --git a/jdk/test/java/io/Serializable/subclassGC/security.policy b/jdk/test/java/io/Serializable/subclassGC/security.policy
index 894df4c..a3ef804 100644
--- a/jdk/test/java/io/Serializable/subclassGC/security.policy
+++ b/jdk/test/java/io/Serializable/subclassGC/security.policy
@@ -2,5 +2,7 @@
grant {
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "getClassLoader";
+ permission java.util.PropertyPermission "test.classes", "read";
+ permission java.io.FilePermission "<<ALL FILES>>", "read";
};