diff --git a/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java b/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java index 3018cdef99e0c2783450dae563fcf94cc97afe2a..1b03be02dd1f4f5b29e2dee9ca410ac4c42d3b70 100644 --- a/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java +++ b/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java @@ -580,7 +580,7 @@ public class AnyImpl extends Any java.lang.Object[] objholder = new java.lang.Object[1]; objholder[0] = object; long[] longholder = new long[1]; - TCUtility.unmarshalIn(in, typeCode, longholder, objholder); + TCUtility.unmarshalIn(in, realType(), longholder, objholder); value = longholder[0]; object = objholder[0]; stream = null; diff --git a/src/share/classes/javax/rmi/CORBA/Stub.java b/src/share/classes/javax/rmi/CORBA/Stub.java index 72f9434c99f2446430a6404c2edb97ec906dde46..227e28992b6db0f05d772d845c6b82fb10322da0 100644 --- a/src/share/classes/javax/rmi/CORBA/Stub.java +++ b/src/share/classes/javax/rmi/CORBA/Stub.java @@ -61,13 +61,11 @@ public abstract class Stub extends ObjectImpl private transient StubDelegate stubDelegate = null; private static Class stubDelegateClass = null; private static final String StubClassKey = "javax.rmi.CORBA.StubClass"; - private static final String defaultStubImplName = "com.sun.corba.se.impl.javax.rmi.CORBA.StubDelegateImpl"; static { - Object stubDelegateInstance = (Object) createDelegateIfSpecified(StubClassKey, defaultStubImplName); + Object stubDelegateInstance = createDelegate(StubClassKey); if (stubDelegateInstance != null) stubDelegateClass = stubDelegateInstance.getClass(); - } @@ -207,7 +205,7 @@ public abstract class Stub extends ObjectImpl // are in different packages and the visibility needs to be package for // security reasons. If you know a better solution how to share this code // then remove it from PortableRemoteObject. Also in Util.java - private static Object createDelegateIfSpecified(String classKey, String defaultClassName) { + private static Object createDelegate(String classKey) { String className = (String) AccessController.doPrivileged(new GetPropertyAction(classKey)); if (className == null) { @@ -218,7 +216,7 @@ public abstract class Stub extends ObjectImpl } if (className == null) { - className = defaultClassName; + return new com.sun.corba.se.impl.javax.rmi.CORBA.StubDelegateImpl(); } try { diff --git a/src/share/classes/javax/rmi/CORBA/Util.java b/src/share/classes/javax/rmi/CORBA/Util.java index 449788afa62d31ee95ed54ffbc4b5c71a588ea2f..65df15f1a278a55d6d866cce3cd2b8b075acfbc7 100644 --- a/src/share/classes/javax/rmi/CORBA/Util.java +++ b/src/share/classes/javax/rmi/CORBA/Util.java @@ -60,14 +60,11 @@ import com.sun.corba.se.impl.orbutil.GetPropertyAction; public class Util { // This can only be set at static initialization time (no sync necessary). - private static javax.rmi.CORBA.UtilDelegate utilDelegate = null; + private static final javax.rmi.CORBA.UtilDelegate utilDelegate; private static final String UtilClassKey = "javax.rmi.CORBA.UtilClass"; - private static final String defaultUtilImplName = -"com.sun.corba.se.impl.javax.rmi.CORBA.Util"; static { - utilDelegate = (javax.rmi.CORBA.UtilDelegate) - createDelegateIfSpecified(UtilClassKey, defaultUtilImplName); + utilDelegate = (javax.rmi.CORBA.UtilDelegate)createDelegate(UtilClassKey); } private Util(){} @@ -338,9 +335,7 @@ Tie#deactivate} // are in different packages and the visibility needs to be package for // security reasons. If you know a better solution how to share this code // then remove it from PortableRemoteObject. Also in Stub.java - private static Object createDelegateIfSpecified(String classKey, - String defaultClassName) - { + private static Object createDelegate(String classKey) { String className = (String) AccessController.doPrivileged(new GetPropertyAction(classKey)); if (className == null) { @@ -351,7 +346,7 @@ Tie#deactivate} } if (className == null) { - className = defaultClassName; + return new com.sun.corba.se.impl.javax.rmi.CORBA.Util(); } try { diff --git a/src/share/classes/javax/rmi/PortableRemoteObject.java b/src/share/classes/javax/rmi/PortableRemoteObject.java index cbd6df255104a872af826e10952f08b913303241..951f06cb477288e85fd6c054a75dc720e950f7ba 100644 --- a/src/share/classes/javax/rmi/PortableRemoteObject.java +++ b/src/share/classes/javax/rmi/PortableRemoteObject.java @@ -65,17 +65,14 @@ import com.sun.corba.se.impl.orbutil.GetPropertyAction; */ public class PortableRemoteObject { - private static javax.rmi.CORBA.PortableRemoteObjectDelegate proDelegate = null; + private static final javax.rmi.CORBA.PortableRemoteObjectDelegate proDelegate; private static final String PortableRemoteObjectClassKey = "javax.rmi.CORBA.PortableRemoteObjectClass"; - private static final String defaultPortableRemoteObjectImplName = - "com.sun.corba.se.impl.javax.rmi.PortableRemoteObject"; - static { proDelegate = (javax.rmi.CORBA.PortableRemoteObjectDelegate) - createDelegateIfSpecified(PortableRemoteObjectClassKey); + createDelegate(PortableRemoteObjectClassKey); } /** @@ -181,7 +178,7 @@ public class PortableRemoteObject { // are in different packages and the visibility needs to be package for // security reasons. If you know a better solution how to share this code // then remove it from here. - private static Object createDelegateIfSpecified(String classKey) { + private static Object createDelegate(String classKey) { String className = (String) AccessController.doPrivileged(new GetPropertyAction(classKey)); if (className == null) { @@ -191,7 +188,7 @@ public class PortableRemoteObject { } } if (className == null) { - className = defaultPortableRemoteObjectImplName; + return new com.sun.corba.se.impl.javax.rmi.PortableRemoteObject(); } try { diff --git a/src/share/classes/org/omg/CORBA/ORB.java b/src/share/classes/org/omg/CORBA/ORB.java index 42fe7bc0090fdeefebad67147096a7eea53ce2c6..5b434097c650aede1aefd72e3b084d79a679c5ca 100644 --- a/src/share/classes/org/omg/CORBA/ORB.java +++ b/src/share/classes/org/omg/CORBA/ORB.java @@ -173,15 +173,6 @@ abstract public class ORB { private static final String ORBClassKey = "org.omg.CORBA.ORBClass"; private static final String ORBSingletonClassKey = "org.omg.CORBA.ORBSingletonClass"; - // - // The last resort fallback ORB implementation classes in case - // no ORB implementation class is dynamically configured through - // properties or applet parameters. Change these values to - // vendor-specific class names. - // - private static final String defaultORB = "com.sun.corba.se.impl.orb.ORBImpl"; - private static final String defaultORBSingleton = "com.sun.corba.se.impl.orb.ORBSingleton"; - // // The global instance of the singleton ORB implementation which // acts as a factory for typecodes for generated Helper classes. @@ -294,10 +285,11 @@ abstract public class ORB { String className = getSystemProperty(ORBSingletonClassKey); if (className == null) className = getPropertyFromFile(ORBSingletonClassKey); - if (className == null) - className = defaultORBSingleton; - - singleton = create_impl(className); + if (className == null) { + singleton = new com.sun.corba.se.impl.orb.ORBSingleton(); + } else { + singleton = create_impl(className); + } } return singleton; } @@ -347,10 +339,12 @@ abstract public class ORB { className = getSystemProperty(ORBClassKey); if (className == null) className = getPropertyFromFile(ORBClassKey); - if (className == null) - className = defaultORB; + if (className == null) { + orb = new com.sun.corba.se.impl.orb.ORBImpl(); + } else { + orb = create_impl(className); + } - orb = create_impl(className); orb.set_parameters(args, props); return orb; } @@ -375,10 +369,12 @@ abstract public class ORB { className = getSystemProperty(ORBClassKey); if (className == null) className = getPropertyFromFile(ORBClassKey); - if (className == null) - className = defaultORB; + if (className == null) { + orb = new com.sun.corba.se.impl.orb.ORBImpl(); + } else { + orb = create_impl(className); + } - orb = create_impl(className); orb.set_parameters(app, props); return orb; }