[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/serialization ...
Tom Elrod
tom.elrod at jboss.com
Fri Jan 12 13:56:23 EST 2007
User: telrod
Date: 07/01/12 13:56:23
Modified: src/main/org/jboss/remoting/serialization
ClassLoaderUtility.java
SerializationStreamFactory.java
Log:
JBREM-659 - changed all ClassLoader.loadClass() calls to Class.forName() calls so will work with jdk 1.6
Revision Changes Path
1.5 +60 -4 JBossRemoting/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ClassLoaderUtility.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/serialization/ClassLoaderUtility.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- ClassLoaderUtility.java 30 Dec 2005 05:26:35 -0000 1.4
+++ ClassLoaderUtility.java 12 Jan 2007 18:56:23 -0000 1.5
@@ -42,24 +42,67 @@
try
{
+ loader = Thread.currentThread().getContextClassLoader();
+ if (loader != null)
+ {
+ return Class.forName(classname, false, loader);
+ }
+ }
+ catch (Throwable t)
+ {
+ }
+
+ if (clazz != null)
+ {
+ try
+ {
loader = clazz.getClassLoader();
if(loader != null)
{
- return loader.loadClass(classname);
+ return Class.forName(classname, false, loader);
}
}
catch(Throwable t)
{
}
+ }
+
+ try
+ {
+ loader = ClassLoader.getSystemClassLoader();
+ if (loader != null)
+ {
+ return Class.forName(classname, false, loader);
+ }
+ }
+ catch (Throwable t)
+ {
+ }
+
+ throw new ClassNotFoundException(classname);
+ }
+
+
+ /**
+ * Tries to load the class from the passed class' classloader, then current thread's context class loader.
+ *
+ * @param clazz Class object used to obtain a class loader
+ * if no context class loader is available.
+ * @param classname Desired class.
+ * @return Class, or null on failure.
+ */
+ public static Class loadClass(Class clazz, String classname) throws ClassNotFoundException
+ {
+ ClassLoader loader;
if(clazz != null)
{
try
{
- loader = Thread.currentThread().getContextClassLoader();
+ loader = clazz.getClassLoader();
if(loader != null)
{
- return loader.loadClass(classname);
+ return Class.forName(classname, false, loader);
}
}
catch(Throwable t)
@@ -69,10 +112,23 @@
try
{
+ loader = Thread.currentThread().getContextClassLoader();
+ if (loader != null)
+ {
+ return Class.forName(classname, false, loader);
+ }
+ }
+ catch (Throwable t)
+ {
+ }
+
+
+ try
+ {
loader = ClassLoader.getSystemClassLoader();
if(loader != null)
{
- return loader.loadClass(classname);
+ return Class.forName(classname, false, loader);
}
}
catch(Throwable t)
1.25 +3 -3 JBossRemoting/src/main/org/jboss/remoting/serialization/SerializationStreamFactory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SerializationStreamFactory.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/serialization/SerializationStreamFactory.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- SerializationStreamFactory.java 25 Aug 2006 21:12:05 -0000 1.24
+++ SerializationStreamFactory.java 12 Jan 2007 18:56:23 -0000 1.25
@@ -155,7 +155,7 @@
*/
private static void loadObjectManagerClass(String key, String managerClassName) throws ClassNotFoundException, IllegalAccessException, InstantiationException
{
- Class managerClass = ClassLoaderUtility.loadClass(managerClassName, SerializationStreamFactory.class);
+ Class managerClass = ClassLoaderUtility.loadClass(SerializationStreamFactory.class, managerClassName);
SerializationManager manager = (SerializationManager) managerClass.newInstance();
if(managers.get(key) != null)
More information about the jboss-cvs-commits
mailing list