< prev index next >

src/java.rmi/share/classes/java/rmi/server/RMIClassLoader.java

Print this page




 664      *
 665      * This method assumes that it has been invoked in a privileged block.
 666      */
 667     private static RMIClassLoaderSpi initializeProvider() {
 668         /*
 669          * First check for the system property being set:
 670          */
 671         String providerClassName =
 672             System.getProperty("java.rmi.server.RMIClassLoaderSpi");
 673 
 674         if (providerClassName != null) {
 675             if (providerClassName.equals("default")) {
 676                 return defaultProvider;
 677             }
 678 
 679             try {
 680                 Class<? extends RMIClassLoaderSpi> providerClass =
 681                     Class.forName(providerClassName, false,
 682                                   ClassLoader.getSystemClassLoader())
 683                     .asSubclass(RMIClassLoaderSpi.class);
 684                 return providerClass.newInstance();


 685 
 686             } catch (ClassNotFoundException e) {
 687                 throw new NoClassDefFoundError(e.getMessage());
 688             } catch (IllegalAccessException e) {
 689                 throw new IllegalAccessError(e.getMessage());
 690             } catch (InstantiationException e) {
 691                 throw new InstantiationError(e.getMessage());
 692             } catch (ClassCastException e) {
 693                 Error error = new LinkageError(
 694                     "provider class not assignable to RMIClassLoaderSpi");
 695                 error.initCause(e);
 696                 throw error;
 697             }
 698         }
 699 
 700         /*
 701          * Next look for a provider configuration file installed:
 702          */
 703         Iterator<RMIClassLoaderSpi> iter =
 704             ServiceLoader.load(RMIClassLoaderSpi.class,


 664      *
 665      * This method assumes that it has been invoked in a privileged block.
 666      */
 667     private static RMIClassLoaderSpi initializeProvider() {
 668         /*
 669          * First check for the system property being set:
 670          */
 671         String providerClassName =
 672             System.getProperty("java.rmi.server.RMIClassLoaderSpi");
 673 
 674         if (providerClassName != null) {
 675             if (providerClassName.equals("default")) {
 676                 return defaultProvider;
 677             }
 678 
 679             try {
 680                 Class<? extends RMIClassLoaderSpi> providerClass =
 681                     Class.forName(providerClassName, false,
 682                                   ClassLoader.getSystemClassLoader())
 683                     .asSubclass(RMIClassLoaderSpi.class);
 684                 @SuppressWarnings("deprecation")
 685                 RMIClassLoaderSpi result = providerClass.newInstance();
 686                 return result;
 687 
 688             } catch (ClassNotFoundException e) {
 689                 throw new NoClassDefFoundError(e.getMessage());
 690             } catch (IllegalAccessException e) {
 691                 throw new IllegalAccessError(e.getMessage());
 692             } catch (InstantiationException e) {
 693                 throw new InstantiationError(e.getMessage());
 694             } catch (ClassCastException e) {
 695                 Error error = new LinkageError(
 696                     "provider class not assignable to RMIClassLoaderSpi");
 697                 error.initCause(e);
 698                 throw error;
 699             }
 700         }
 701 
 702         /*
 703          * Next look for a provider configuration file installed:
 704          */
 705         Iterator<RMIClassLoaderSpi> iter =
 706             ServiceLoader.load(RMIClassLoaderSpi.class,
< prev index next >