[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