[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/serialization ...
Tom Elrod
tom.elrod at jboss.com
Fri Jan 12 12:19:48 EST 2007
User: telrod
Date: 07/01/12 12:19:48
Modified: src/main/org/jboss/remoting/serialization Tag:
remoting_1_4 SerializationStreamFactory.java
ClassLoaderUtility.java
Log:
JBREM-659 - changed all ClassLoader.loadClass() calls to Class.forName() calls so will work with jdk 1.6
Revision Changes Path
No revision
No revision
1.19.4.3 +13 -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.19.4.2
retrieving revision 1.19.4.3
diff -u -b -r1.19.4.2 -r1.19.4.3
--- SerializationStreamFactory.java 8 May 2006 01:56:57 -0000 1.19.4.2
+++ SerializationStreamFactory.java 12 Jan 2007 17:19:48 -0000 1.19.4.3
@@ -56,7 +56,6 @@
}
catch(Exception e)
{
- e.printStackTrace();
log.error(e.getMessage(), e);
}
try
@@ -65,7 +64,6 @@
}
catch(Exception e)
{
- e.printStackTrace();
log.error(e.getMessage(), e);
}
try
@@ -135,7 +133,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)
@@ -145,6 +143,13 @@
managers.put(key, manager);
}
+ /**
+ * @return the SerializationManager instance corresponding to the given key. If key is null,
+ * "java" is assumed. The method never returns null, if there's no SerializationManager
+ * associated with the given key, the method throws exception.
+ *
+ * @throws IOException if there's no corresponding SerializationManager instance.
+ */
public static SerializationManager getManagerInstance(String key) throws IOException
{
if(key == null)
@@ -152,6 +157,11 @@
key = JAVA;
}
SerializationManager manager = (SerializationManager) managers.get(key);
+
+ if (manager == null)
+ {
+ throw new IOException("Unknown serialization type: " + key);
+ }
return manager;
}
1.4.4.1 +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.4.4.1
diff -u -b -r1.4 -r1.4.4.1
--- ClassLoaderUtility.java 30 Dec 2005 05:26:35 -0000 1.4
+++ ClassLoaderUtility.java 12 Jan 2007 17:19:48 -0000 1.4.4.1
@@ -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)
More information about the jboss-cvs-commits
mailing list