< prev index next >

test/java/io/Serializable/subclassGC/SubclassGC.java

Print this page




  33  */
  34 
  35 import java.io.*;
  36 import java.lang.ref.Reference;
  37 import java.lang.ref.ReferenceQueue;
  38 import java.lang.ref.WeakReference;
  39 import java.lang.reflect.Constructor;
  40 import java.net.URL;
  41 import java.net.URLClassLoader;
  42 
  43 public class SubclassGC {
  44         private static final long TIMEOUT = 1000;
  45 
  46         public static final void main(String[] args) throws Exception {
  47                 System.err.println("\n Regression test for bug 6232010\n");
  48                 if (System.getSecurityManager() == null) {
  49                         System.setSecurityManager(new SecurityManager());
  50                 }
  51 
  52                 ClassLoader systemLoader = ClassLoader.getSystemClassLoader();
  53                 ClassLoader loader = new URLClassLoader(((URLClassLoader) systemLoader).getURLs(),

  54                                                                                         systemLoader.getParent());
  55                 Class<? extends ObjectOutputStream> cl =
  56                         Class.forName(SubclassOfOOS.class.getName(), false,
  57                                                   loader).asSubclass(ObjectOutputStream.class);
  58 
  59                 Constructor<? extends ObjectOutputStream> cons =
  60                         cl.getConstructor(OutputStream.class);
  61 
  62                 OutputStream os = new ByteArrayOutputStream();
  63                 ObjectOutputStream obj = cons.newInstance(os);
  64 
  65                 final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>();
  66                 WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue);
  67 
  68                 cl = null;
  69                 obj = null;
  70                 loader = null;
  71                 cons = null;
  72                 systemLoader = null;
  73 


  33  */
  34 
  35 import java.io.*;
  36 import java.lang.ref.Reference;
  37 import java.lang.ref.ReferenceQueue;
  38 import java.lang.ref.WeakReference;
  39 import java.lang.reflect.Constructor;
  40 import java.net.URL;
  41 import java.net.URLClassLoader;
  42 
  43 public class SubclassGC {
  44         private static final long TIMEOUT = 1000;
  45 
  46         public static final void main(String[] args) throws Exception {
  47                 System.err.println("\n Regression test for bug 6232010\n");
  48                 if (System.getSecurityManager() == null) {
  49                         System.setSecurityManager(new SecurityManager());
  50                 }
  51 
  52                 ClassLoader systemLoader = ClassLoader.getSystemClassLoader();
  53                 URL testClassesURL = new File(System.getProperty("test.classes")).toURI().toURL();
  54                 ClassLoader loader = new URLClassLoader(new URL[] { testClassesURL } ,
  55                                                         systemLoader.getParent());
  56                 Class<? extends ObjectOutputStream> cl =
  57                         Class.forName(SubclassOfOOS.class.getName(), false,
  58                                                   loader).asSubclass(ObjectOutputStream.class);
  59 
  60                 Constructor<? extends ObjectOutputStream> cons =
  61                         cl.getConstructor(OutputStream.class);
  62 
  63                 OutputStream os = new ByteArrayOutputStream();
  64                 ObjectOutputStream obj = cons.newInstance(os);
  65 
  66                 final ReferenceQueue<Class<?>> queue = new ReferenceQueue<Class<?>>();
  67                 WeakReference<Class<?>> ref = new WeakReference<Class<?>>(cl, queue);
  68 
  69                 cl = null;
  70                 obj = null;
  71                 loader = null;
  72                 cons = null;
  73                 systemLoader = null;
  74 
< prev index next >