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 du...@apache.org on 2003/03/15 16:43:27 UTC

cvs commit: xml-axis/java/src/org/apache/axis/providers/java JavaProvider.java

dug         2003/03/15 07:43:26

  Modified:    java     build.xml
               java/src/org/apache/axis/providers/java JavaProvider.java
  Log:
  If an exception is thrown in the c'tor the lock will never
  be removed causing a hang the next time this service is called.
  
  Revision  Changes    Path
  1.227     +1 -1      xml-axis/java/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/build.xml,v
  retrieving revision 1.226
  retrieving revision 1.227
  diff -u -r1.226 -r1.227
  --- build.xml	6 Mar 2003 23:56:07 -0000	1.226
  +++ build.xml	15 Mar 2003 15:43:26 -0000	1.227
  @@ -400,7 +400,7 @@
       </copy>
     </target>
   
  -  <target name="dist" depends="compile, javadocsdist, samples, junit"
  +  <target name="dist" depends="compile, javadocsdist, samples"
       description="create the full binary distribution">
       <mkdir dir="${dist.dir}"/>
       <mkdir dir="${dist.dir}/lib"/>
  
  
  
  1.99      +6 -3      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.98
  retrieving revision 1.99
  diff -u -r1.98 -r1.99
  --- JavaProvider.java	25 Jan 2003 19:28:01 -0000	1.98
  +++ JavaProvider.java	15 Mar 2003 15:43:26 -0000	1.99
  @@ -227,9 +227,12 @@
               // placeholder, create a new service object and install it
               // instead, then notify anyone waiting on the LockObject.
               if (makeNewObject) {
  -                obj = getNewServiceObject(msgContext, clsName);
  -                session.set(serviceName, obj);
  -                lock.complete();
  +                try {
  +                  obj = getNewServiceObject(msgContext, clsName);
  +                  session.set(serviceName, obj);
  +                } finally {
  +                  lock.complete();
  +                }
               } else {
                   // It's someone else's LockObject, so wait around until
                   // it's completed.