[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] FYI: CORBA class loader fixes in
From: |
Meskauskas Audrius |
Subject: |
[cp-patches] FYI: CORBA class loader fixes in |
Date: |
Tue, 11 Oct 2005 00:20:55 +0200 |
User-agent: |
Mozilla Thunderbird 1.0.2 (Windows/20050317) |
Class.forName(String) in the core does not load classes from the user
application. I noticed that this is required in some CORBA classes. This
patch replaces Class.forName(String) ino Class.forName(String, true,
Thread.currentThread().getContextClassLoader().
2005-10-10 Audrius Meskauskas <address@hidden>
* gnu/CORBA/Interceptor/Registrator.java,
gnu/CORBA/ObjectCreator.java,
gnu/CORBA/gnuValueHolder.java,
gnu/CORBA/stubFinder.java,
gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
gnu/javax/rmi/CORBA/StubDelegateImpl.java,
gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
org/omg/CORBA/ORB.java: Use context class loader.
Index: gnu/CORBA/ObjectCreator.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/CORBA/ObjectCreator.java,v
retrieving revision 1.7
diff -u -r1.7 ObjectCreator.java
--- gnu/CORBA/ObjectCreator.java 2 Oct 2005 19:58:00 -0000 1.7
+++ gnu/CORBA/ObjectCreator.java 10 Oct 2005 20:51:50 -0000
@@ -139,14 +139,14 @@
suffix = "";
try
{
- known = Class.forName(toClassName(JAVA_PREFIX, idl) + suffix);
+ known = forName(toClassName(JAVA_PREFIX, idl) + suffix);
object = known.newInstance();
}
catch (Exception ex)
{
try
{
- known = Class.forName(toClassName(CLASSPATH_PREFIX, idl)
+ known = forName(toClassName(CLASSPATH_PREFIX, idl)
+ suffix);
object = known.newInstance();
}
@@ -343,7 +343,7 @@
try
{
- c = Class.forName(cn);
+ c = forName(cn);
m_classes.put(IDL, c);
return c;
}
@@ -438,7 +438,7 @@
try
{
String helperClassName = object.getClass().getName() + "Helper";
- Class helperClass = Class.forName(helperClassName);
+ Class helperClass = forName(helperClassName);
Method insert = helperClass.getMethod("insert", new Class[] {
Any.class, object.getClass() });
@@ -534,7 +534,7 @@
try
{
String helper = toHelperName(idl);
- c = Class.forName(helper);
+ c = forName(helper);
m_helpers.put(idl, c);
return c;
@@ -544,6 +544,15 @@
return null;
}
}
-
}
+
+ /**
+ * Load the class with the given name.
+ */
+ public static Class forName(String className)
+ throws ClassNotFoundException
+ {
+ return Class.forName(className, true,
+ Thread.currentThread().getContextClassLoader());
+ }
}
Index: gnu/CORBA/gnuValueHolder.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/CORBA/gnuValueHolder.java,v
retrieving revision 1.1
diff -u -r1.1 gnuValueHolder.java
--- gnu/CORBA/gnuValueHolder.java 7 Aug 2005 17:17:43 -0000 1.1
+++ gnu/CORBA/gnuValueHolder.java 10 Oct 2005 20:47:08 -0000
@@ -123,7 +123,8 @@
try
{
Class helperClass =
- Class.forName(ObjectCreator.toHelperName(type.id()));
+ Class.forName(ObjectCreator.toHelperName(type.id()),
+ true, Thread.currentThread().getContextClassLoader());
helper = (BoxedValueHelper) helperClass.newInstance();
}
Index: gnu/CORBA/stubFinder.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/CORBA/stubFinder.java,v
retrieving revision 1.2
diff -u -r1.2 stubFinder.java
--- gnu/CORBA/stubFinder.java 2 Jul 2005 20:32:09 -0000 1.2
+++ gnu/CORBA/stubFinder.java 10 Oct 2005 20:48:02 -0000
@@ -83,7 +83,8 @@
String stub = "_" + s.substring(b + 1) + "Stub";
- Class stubClass = Class.forName(path + stub);
+ Class stubClass = Class.forName(path + stub, true,
+ Thread.currentThread().getContextClassLoader());
return (ObjectImpl) stubClass.newInstance();
}
Index: gnu/CORBA/Interceptor/Registrator.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/CORBA/Interceptor/Registrator.java,v
retrieving revision 1.3
diff -u -r1.3 Registrator.java
--- gnu/CORBA/Interceptor/Registrator.java 2 Oct 2005 19:58:00 -0000
1.3
+++ gnu/CORBA/Interceptor/Registrator.java 10 Oct 2005 20:47:28 -0000
@@ -182,7 +182,8 @@
try
{
String cn = sk.substring(m_prefix.length());
- Class iClass = Class.forName(cn);
+ Class iClass = Class.forName(cn, true,
+ Thread.currentThread().getContextClassLoader());
ORBInitializer initializer =
(ORBInitializer) iClass.newInstance();
m_initializers.add(initializer);
Index: gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,v
retrieving revision 1.4
diff -u -r1.4 PortableRemoteObjectDelegateImpl.java
--- gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java 2 Oct 2005
19:58:01 -0000 1.4
+++ gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java 10 Oct 2005
20:52:30 -0000
@@ -47,6 +47,7 @@
import java.rmi.NoSuchObjectException;
import java.rmi.Remote;
import java.rmi.RemoteException;
+import java.rmi.server.RMIClassLoader;
import javax.rmi.CORBA.PortableRemoteObjectDelegate;
import javax.rmi.CORBA.Stub;
@@ -315,7 +316,7 @@
try
{
- stubClass = Class.forName(sn);
+ stubClass = RMIClassLoader.loadClass(sn);
o_stub = stubClass.newInstance();
}
catch (Exception e)
Index: gnu/javax/rmi/CORBA/StubDelegateImpl.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/javax/rmi/CORBA/StubDelegateImpl.java,v
retrieving revision 1.5
diff -u -r1.5 StubDelegateImpl.java
--- gnu/javax/rmi/CORBA/StubDelegateImpl.java 2 Oct 2005 19:58:01 -0000
1.5
+++ gnu/javax/rmi/CORBA/StubDelegateImpl.java 10 Oct 2005 20:39:46 -0000
@@ -193,7 +193,8 @@
try
{
- tieClass = Class.forName(tn);
+ tieClass = Class.forName(tn, true,
+ Thread.currentThread().getContextClassLoader());
t = (Tie) tieClass.newInstance();
if (self instanceof Remote)
Util.registerTarget(t, (Remote) self);
Index: gnu/javax/rmi/CORBA/UtilDelegateImpl.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/javax/rmi/CORBA/UtilDelegateImpl.java,v
retrieving revision 1.4
diff -u -r1.4 UtilDelegateImpl.java
--- gnu/javax/rmi/CORBA/UtilDelegateImpl.java 4 Oct 2005 17:58:15 -0000
1.4
+++ gnu/javax/rmi/CORBA/UtilDelegateImpl.java 10 Oct 2005 20:41:14 -0000
@@ -373,17 +373,8 @@
ClassLoader loader)
throws ClassNotFoundException
{
- ClassLoader tt = Thread.currentThread().getContextClassLoader();
-
- try
- {
- if (tt != null)
- return tt.loadClass(className);
- }
- catch (Exception e)
- {
- // This failed but try others.
- }
+ if (loader == null)
+ loader = Thread.currentThread().getContextClassLoader();
String p_useCodebaseOnly =
System.getProperty("java.rmi.server.useCodebaseOnly");
Index: org/omg/CORBA/ORB.java
===================================================================
RCS file: /cvsroot/classpath/classpath/org/omg/CORBA/ORB.java,v
retrieving revision 1.16
diff -u -r1.16 ORB.java
--- org/omg/CORBA/ORB.java 14 Sep 2005 07:45:04 -0000 1.16
+++ org/omg/CORBA/ORB.java 10 Oct 2005 20:38:48 -0000
@@ -1167,7 +1167,8 @@
try
{
- orb = (ORB) Class.forName(orbClassName).newInstance();
+ orb = (ORB) Class.forName(orbClassName, true,
+ Thread.currentThread().getContextClassLoader()).newInstance();
}
catch (ClassNotFoundException ex)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] FYI: CORBA class loader fixes in,
Meskauskas Audrius <=