gdaniels    02/03/14 21:07:11

  Modified:    java/src/org/apache/axis/providers/java JavaProvider.java
               java/src/org/apache/axis Handler.java
               java/src/org/apache/axis/client Call.java
               java/src/org/apache/axis/handlers BasicHandler.java
  Log:
  Protect the thread-unsafe parts of getServiceObject() with sync blocks.
  
  Remove deprecated "setOption" methods for the beta.
  
  Revision  Changes    Path
  1.44      +19 -13    
xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java
  
  Index: JavaProvider.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- JavaProvider.java 14 Mar 2002 21:33:34 -0000      1.43
  +++ JavaProvider.java 15 Mar 2002 05:07:10 -0000      1.44
  @@ -133,30 +133,36 @@
   
               // look in incoming session
               if (msgContext.getSession() != null) {
  -                // store service objects in session, indexed by class name
  -                Object obj = msgContext.getSession().get(serviceName);
  -                if (obj == null) {
  -                    obj = getNewServiceObject(msgContext, clsName);
  -                    msgContext.getSession().set(serviceName, obj);
  +                // This part isn't thread safe...
  +                synchronized (this) {
  +                    // store service objects in session, indexed by class name
  +                    Object obj = msgContext.getSession().get(serviceName);
  +                    if (obj == null) {
  +                        obj = getNewServiceObject(msgContext, clsName);
  +                        msgContext.getSession().set(serviceName, obj);
  +                    }
  +                    return obj;
                   }
  -                return obj;
               } else {
                   // was no incoming session, sigh, treat as request scope
                   return getNewServiceObject(msgContext, clsName);
               }
   
           } else if (scope.equalsIgnoreCase("Application")) {
  -
               // MUST be AxisEngine here!
               AxisEngine engine = msgContext.getAxisEngine();
               if (engine.getApplicationSession() != null) {
  -                // store service objects in session, indexed by class name
  -                Object obj = engine.getApplicationSession().get(serviceName);
  -                if (obj == null) {
  -                    obj = getNewServiceObject(msgContext, clsName);
  -                    engine.getApplicationSession().set(serviceName, obj);
  +                // This part isn't thread safe
  +                synchronized (this) {
  +                    // store service objects in session, indexed by class name
  +                    Object obj =
  +                            engine.getApplicationSession().get(serviceName);
  +                    if (obj == null) {
  +                        obj = getNewServiceObject(msgContext, clsName);
  +                        engine.getApplicationSession().set(serviceName, obj);
  +                    }
  +                    return obj;
                   }
  -                return obj;
               } else {
                   // was no incoming session, sigh, treat as request scope
                   return getNewServiceObject(msgContext, clsName);
  
  
  
  1.25      +0 -7      xml-axis/java/src/org/apache/axis/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Handler.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- Handler.java      10 Jan 2002 20:00:59 -0000      1.24
  +++ Handler.java      15 Mar 2002 05:07:10 -0000      1.25
  @@ -106,13 +106,6 @@
       public void setOption(String name, Object value);
       
       /**
  -     * Old version of setOption()
  -     * 
  -     * @deprecated replaced by setOption, to be more consistent
  -     */ 
  -    public void addOption(String name, Object value);
  -
  -    /**
        * Returns the option corresponding to the 'name' given
        */
       public Object getOption(String name);
  
  
  
  1.96      +0 -9      xml-axis/java/src/org/apache/axis/client/Call.java
  
  Index: Call.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- Call.java 15 Mar 2002 01:14:10 -0000      1.95
  +++ Call.java 15 Mar 2002 05:07:11 -0000      1.96
  @@ -1663,15 +1663,6 @@
       }
       
       /**
  -     * Old version of above
  -     * 
  -     * @deprecated replaced with setOption()
  -     */
  -    public void addOption(String name, Object value) {
  -        setOption(name, value);
  -    }
  -
  -    /**
        * Invoke this Call with its established MessageContext
        * (perhaps because you called this.setRequestMessage())
        *
  
  
  
  1.26      +0 -9      xml-axis/java/src/org/apache/axis/handlers/BasicHandler.java
  
  Index: BasicHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/BasicHandler.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- BasicHandler.java 22 Feb 2002 23:39:45 -0000      1.25
  +++ BasicHandler.java 15 Mar 2002 05:07:11 -0000      1.26
  @@ -117,15 +117,6 @@
       }
       
       /**
  -     * Old version of setOption()
  -     * 
  -     * @deprecated replaced by setOption, to be more consistent
  -     */ 
  -    public void addOption(String name, Object value) {
  -        setOption(name, value);
  -    }
  -
  -    /**
        * Returns the option corresponding to the 'name' given
        */
       public Object getOption(String name) {
  
  
  


Reply via email to