745 */ 746 public static URLClassLoader newInstance(final URL[] urls) { 747 // Save the caller's context 748 final AccessControlContext acc = AccessController.getContext(); 749 // Need a privileged block to create the class loader 750 URLClassLoader ucl = AccessController.doPrivileged( 751 new PrivilegedAction<URLClassLoader>() { 752 public URLClassLoader run() { 753 return new FactoryURLClassLoader(urls, acc); 754 } 755 }); 756 return ucl; 757 } 758 759 static { 760 sun.misc.SharedSecrets.setJavaNetAccess ( 761 new sun.misc.JavaNetAccess() { 762 public URLClassPath getURLClassPath (URLClassLoader u) { 763 return u.ucp; 764 } 765 } 766 ); 767 ClassLoader.registerAsParallelCapable(); 768 } 769 } 770 771 final class FactoryURLClassLoader extends URLClassLoader { 772 773 static { 774 ClassLoader.registerAsParallelCapable(); 775 } 776 777 FactoryURLClassLoader(URL[] urls, ClassLoader parent, 778 AccessControlContext acc) { 779 super(urls, parent, acc); 780 } 781 782 FactoryURLClassLoader(URL[] urls, AccessControlContext acc) { 783 super(urls, acc); 784 } | 745 */ 746 public static URLClassLoader newInstance(final URL[] urls) { 747 // Save the caller's context 748 final AccessControlContext acc = AccessController.getContext(); 749 // Need a privileged block to create the class loader 750 URLClassLoader ucl = AccessController.doPrivileged( 751 new PrivilegedAction<URLClassLoader>() { 752 public URLClassLoader run() { 753 return new FactoryURLClassLoader(urls, acc); 754 } 755 }); 756 return ucl; 757 } 758 759 static { 760 sun.misc.SharedSecrets.setJavaNetAccess ( 761 new sun.misc.JavaNetAccess() { 762 public URLClassPath getURLClassPath (URLClassLoader u) { 763 return u.ucp; 764 } 765 public byte[] getHardwareAddress0(NetworkInterface ni) 766 throws SocketException { 767 return ni.getHardwareAddress0(); 768 } 769 } 770 ); 771 ClassLoader.registerAsParallelCapable(); 772 } 773 } 774 775 final class FactoryURLClassLoader extends URLClassLoader { 776 777 static { 778 ClassLoader.registerAsParallelCapable(); 779 } 780 781 FactoryURLClassLoader(URL[] urls, ClassLoader parent, 782 AccessControlContext acc) { 783 super(urls, parent, acc); 784 } 785 786 FactoryURLClassLoader(URL[] urls, AccessControlContext acc) { 787 super(urls, acc); 788 } |