[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