You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ru...@apache.org on 2001/05/01 01:50:10 UTC

cvs commit: xml-axis/java/src/org/apache/axis/utils AxisClassLoader.java

rubys       01/04/30 16:50:09

  Modified:    java/src/org/apache/axis/handlers RPCDispatchHandler.java
               java/src/org/apache/axis/utils AxisClassLoader.java
  Log:
  Only load classes once.
  
  Revision  Changes    Path
  1.29      +2 -1      xml-axis/java/src/org/apache/axis/handlers/RPCDispatchHandler.java
  
  Index: RPCDispatchHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/RPCDispatchHandler.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- RPCDispatchHandler.java	2001/04/30 22:56:17	1.28
  +++ RPCDispatchHandler.java	2001/04/30 23:50:06	1.29
  @@ -67,6 +67,8 @@
    */
   public class RPCDispatchHandler extends BasicHandler {
   
  +  private static AxisClassLoader cl = new AxisClassLoader();
  +
     private static final boolean DEBUG_LOG = false;
   
     public void invoke(MessageContext msgContext) throws AxisFault {
  @@ -87,7 +89,6 @@
         /* SOAPBody as an RPCBody and process it accordingly.        */
         /*************************************************************/
         int             i ;
  -      AxisClassLoader cl     = new AxisClassLoader();
         Class           cls    = cl.loadClass(clsName); 
         Object          obj    = cls.newInstance();
         Message         inMsg  = msgContext.getRequestMessage();
  
  
  
  1.4       +12 -6     xml-axis/java/src/org/apache/axis/utils/AxisClassLoader.java
  
  Index: AxisClassLoader.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/AxisClassLoader.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AxisClassLoader.java	2001/04/11 02:00:00	1.3
  +++ AxisClassLoader.java	2001/04/30 23:50:08	1.4
  @@ -68,13 +68,13 @@
    * @author Doug Davis (dug@us.ibm.com)
    */
   public class AxisClassLoader extends ClassLoader {
  -  static Hashtable list = null ;
  +  static Hashtable list = new Hashtable() ;
   
     public AxisClassLoader() {
       super();
     }
   
  -  public synchronized void registerClass( String name, String classFile )
  +  public void registerClass( String name, String classFile )
         throws FileNotFoundException, IOException
     {
       /* Load the class file the *.class file */
  @@ -91,18 +91,22 @@
       /*************************************/
       byte[] data = baos.toByteArray();
       Class  cls  = defineClass( name, data, 0, data.length );
  -    if ( list == null ) list = new Hashtable();
   
       /* And finally register it */
       /***************************/
  +    registerClass( name, cls );
  +  }
  +
  +  public synchronized void registerClass( String name, Class cls ) {
  +    /* And finally register it */
  +    /***************************/
       list.put( name, cls );
     }
   
     public synchronized void deregisterClass( String name ) {
       /* Deregister the passed in className */
       /**************************************/
  -    if ( list != null )
  -      list.remove( name);
  +    list.remove( name);
     }
   
     public Class loadClass(String name) throws ClassNotFoundException {
  @@ -118,6 +122,8 @@
       }
   
       ClassLoader cl = this.getClass().getClassLoader();
  -    return( cl.loadClass( name ) );
  +    Class cls = cl.loadClass( name );
  +    registerClass( name, cls );
  +    return cls;
     }
   };