antoine     2003/10/28 01:56:26

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/starteam
                        StarTeamLabel.java StarTeamTask.java
                        TreeBasedTask.java
  Log:
  Solution for the Starteam disconnect bug
  PR: 24110
  Submitted by: Steve Cohen (scohen at apache dot org)
  
  Revision  Changes    Path
  1.19      +24 -16    
ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java
  
  Index: StarTeamLabel.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- StarTeamLabel.java        2 Oct 2003 10:14:23 -0000       1.18
  +++ StarTeamLabel.java        28 Oct 2003 09:56:26 -0000      1.19
  @@ -76,6 +76,7 @@
    *
    * @author Christopher Charlier, ThoughtWorks, Inc. 2001
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason Yip</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Steve Cohen</a>
    * @see <A HREF="http://www.starbase.com/";>StarBase Web Site</A>
    *
    * @ant.task name="stlabel" category="scm"
  @@ -179,25 +180,32 @@
                   + "both specified.  A revision label cannot be a build 
label.");
           }
   
  -        View snapshot = openView();
  +        try {
  +            View snapshot = openView();
   
  -        // Create the new label and update the repository
  +            // Create the new label and update the repository
   
  -        if (this.revisionlabel) {
  -            new Label(snapshot, this.labelName, this.description).update();
  -            log("Created Revision Label " + this.labelName);
  -        } else if (null != lastBuild) {
  -            new Label(snapshot, this.labelName, this.description, 
this.lastBuild,
  -                      this.buildlabel).update();
  -            log("Created View Label ("
  -                + (this.buildlabel ? "" : "non-") + "build) " + 
this.labelName
  -                + " as of " + this.lastBuild.toString());
  -        } else {
  -            new Label(snapshot, this.labelName, this.description,
  -                      this.buildlabel).update();
  -            log("Created View Label ("
  -                + (this.buildlabel ? "" : "non-") + "build) " + 
this.labelName);
  +            if (this.revisionlabel) {
  +                new Label(snapshot, this.labelName, 
this.description).update();
  +                log("Created Revision Label " + this.labelName);
  +            } else if (null != lastBuild) {
  +                new Label(snapshot, this.labelName, this.description, 
this.lastBuild,
  +                          this.buildlabel).update();
  +                log("Created View Label ("
  +                    + (this.buildlabel ? "" : "non-") + "build) " + 
this.labelName
  +                    + " as of " + this.lastBuild.toString());
  +            } else {
  +                new Label(snapshot, this.labelName, this.description,
  +                          this.buildlabel).update();
  +                log("Created View Label ("
  +                    + (this.buildlabel ? "" : "non-") + "build) " + 
this.labelName);
  +            }
  +        } catch (Exception e) {
  +            throw new BuildException(e);
  +        } finally {
  +            disconnectFromServer();
           }
  +
       }
   
       /**
  
  
  
  1.12      +15 -1     
ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamTask.java
  
  Index: StarTeamTask.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamTask.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StarTeamTask.java 9 Jul 2003 14:44:16 -0000       1.11
  +++ StarTeamTask.java 28 Oct 2003 09:56:26 -0000      1.12
  @@ -117,7 +117,7 @@
   
       private void logStarteamVersion() {
           log("StarTeam version: "
  -            + BuildNumber.getDisplayString(), Project.MSG_DEBUG);
  +            + BuildNumber.getDisplayString(), Project.MSG_VERBOSE);
       }
   
   
  @@ -318,6 +318,18 @@
       }
   
       /**
  +     * disconnects from the StarTeam server.  Should be called from the 
  +     * finally clause of every StarTeamTask-based execute method.
  +     */
  +    protected final void disconnectFromServer() {
  +        if (null != this.server) {
  +            this.server.disconnect();
  +            log("successful disconnect from StarTeam Server " + servername,
  +                Project.MSG_VERBOSE);
  +        }
  +    }
  +
  +    /**
        * returns a list of TypeNames known to the server.
        *
        * @return a reference to the server's TypeNames
  @@ -362,6 +374,8 @@
           }
   
           View snapshot = createSnapshotView(view);
  +        log("Connected to StarTeam view " + getURL(),
  +            Project.MSG_VERBOSE);
           this.server = snapshot.getServer();
           return snapshot;
       }
  
  
  
  1.21      +3 -1      
ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/TreeBasedTask.java
  
  Index: TreeBasedTask.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/starteam/TreeBasedTask.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- TreeBasedTask.java        16 Sep 2003 10:38:14 -0000      1.20
  +++ TreeBasedTask.java        28 Oct 2003 09:56:26 -0000      1.21
  @@ -723,6 +723,8 @@
   
           } catch (Exception e) {
               throw new BuildException(e);
  +        } finally {
  +            disconnectFromServer();
           }
       }
   
  @@ -735,7 +737,7 @@
                   if (!stLabel.isRevisionLabel() && !stLabel.isViewLabel()) {
                       throw new BuildException("Unexpected label type.");
                   }
  -                log("using label " + stLabel.getName(), Project.MSG_DEBUG);
  +                log("using label " + stLabel.getName(), Project.MSG_VERBOSE);
                   this.labelInUse = stLabel;
                   return;
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to