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,
|