Browse Source

Make sure <cvspass> closes its streams. Cleanup.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272370 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
b0fcc6e32c
4 changed files with 55 additions and 41 deletions
  1. +39
    -31
      src/main/org/apache/tools/ant/taskdefs/CVSPass.java
  2. +1
    -0
      src/main/org/apache/tools/ant/taskdefs/Checksum.java
  3. +13
    -10
      src/main/org/apache/tools/ant/taskdefs/Deltree.java
  4. +2
    -0
      src/main/org/apache/tools/ant/taskdefs/Execute.java

+ 39
- 31
src/main/org/apache/tools/ant/taskdefs/CVSPass.java View File

@@ -57,6 +57,7 @@ package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.util.StringUtils;

import java.io.File;
import java.io.BufferedReader;
@@ -73,6 +74,8 @@ import java.io.IOException;
* @author <a href="jeff@custommonkey.org">Jeff Martin</a>
* @version $Revision$
*
* @since Ant 1.4
*
* @ant.task category="scm"
*/
public class CVSPass extends Task {
@@ -82,27 +85,26 @@ public class CVSPass extends Task {
private File passFile = null;
/** Password to add to file */
private String password = null;
/** End of line character */
private final String EOL = System.getProperty("line.separator");

/** Array contain char conversion data */
private final char[] shifts = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
114,120, 53, 79, 96,109, 72,108, 70, 64, 76, 67,116, 74, 68, 87,
111, 52, 75,119, 49, 34, 82, 81, 95, 65,112, 86,118,110,122,105,
41, 57, 83, 43, 46,102, 40, 89, 38,103, 45, 50, 42,123, 91, 35,
125, 55, 54, 66,124,126, 59, 47, 92, 71,115, 78, 88,107,106, 56,
36,121,117,104,101,100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48,
58,113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85,223,
225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190,
199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193,
174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212,
207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246,
192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176,
227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127,
182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195,
243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152 };
private final char[] shifts = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
114,120, 53, 79, 96,109, 72,108, 70, 64, 76, 67,116, 74, 68, 87,
111, 52, 75,119, 49, 34, 82, 81, 95, 65,112, 86,118,110,122,105,
41, 57, 83, 43, 46,102, 40, 89, 38,103, 45, 50, 42,123, 91, 35,
125, 55, 54, 66,124,126, 59, 47, 92, 71,115, 78, 88,107,106, 56,
36,121,117,104,101,100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48,
58,113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85,223,
225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190,
199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193,
174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212,
207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246,
192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176,
227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127,
182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195,
243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152
};

public CVSPass(){
passFile = new File(System.getProperty("user.home")+"/.cvspass");
@@ -115,47 +117,53 @@ public class CVSPass extends Task {
*/
public final void execute() throws BuildException {
if(cvsRoot==null) {
throw new BuildException("cvsroot is required");
throw new BuildException("cvsroot is required");
}
if(password==null) {
throw new BuildException("password is required");
throw new BuildException("password is required");
}

log("cvsRoot: " + cvsRoot, Project.MSG_DEBUG);
log("password: " + password, Project.MSG_DEBUG);
log("passFile: " + passFile, Project.MSG_DEBUG);

BufferedReader reader = null;
PrintWriter writer = null;
try{
StringBuffer buf = new StringBuffer();

if(passFile.exists()){
BufferedReader reader =
new BufferedReader(new FileReader(passFile));
reader = new BufferedReader(new FileReader(passFile));

String line = null;

while((line=reader.readLine())!=null){
if(!line.startsWith(cvsRoot)){
buf.append(line+EOL);
buf.append(line).append(StringUtils.LINE_SEP);
}
}

reader.close();
}

String pwdfile = buf.toString() + cvsRoot + " A" + mangle(password);
String pwdfile = buf.toString() + cvsRoot + " A"
+ mangle(password);

log("Writing -> " + pwdfile , Project.MSG_DEBUG);

PrintWriter writer = new PrintWriter(new FileWriter(passFile));
writer = new PrintWriter(new FileWriter(passFile));

writer.println( pwdfile );

writer.close();
}catch(IOException e){
throw new BuildException(e);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {}
}
if (writer != null) {
writer.close();
}
}

}

private final String mangle(String password){


+ 1
- 0
src/main/org/apache/tools/ant/taskdefs/Checksum.java View File

@@ -196,6 +196,7 @@ public class Checksum extends MatchingTask implements Condition {
* Calculate the checksum(s).
*/
public void execute() throws BuildException {
isCondition = false;
boolean value = validateAndExecute();
if (verifyProperty != null) {
project.setNewProperty(verifyProperty,


+ 13
- 10
src/main/org/apache/tools/ant/taskdefs/Deltree.java View File

@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000 The Apache Software Foundation. All rights
* Copyright (c) 2000,2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,7 +64,10 @@ import java.io.IOException;
*
* @author duncan@x180.com
*
* @deprecated The deltree task is deprecated. Use delete instead.
* @since Ant 1.1
*
* @deprecated The deltree task is deprecated since Ant 1.2. Use
* delete instead.
*/

public class Deltree extends Task {
@@ -76,7 +79,8 @@ public class Deltree extends Task {
}

public void execute() throws BuildException {
log("DEPRECATED - The deltree task is deprecated. Use delete instead.");
log("DEPRECATED - The deltree task is deprecated. "
+ "Use delete instead.");

if (dir == null) {
throw new BuildException("dir attribute must be set!", location);
@@ -90,9 +94,6 @@ public class Deltree extends Task {
location);
}
return;
// String msg = "Given dir: " + dir.getAbsolutePath() +
// " is not a dir";
// throw new BuildException(msg);
}

log("Deleting: " + dir.getAbsolutePath());
@@ -113,8 +114,8 @@ public class Deltree extends Task {
// catches this

// if (dir.getCanonicalPath().equals(dir.getAbsolutePath())) {
// (costin) It will not work if /home/costin is symlink to /da0/home/costin ( taz
// for example )
// (costin) It will not work if /home/costin is symlink to
// /da0/home/costin ( taz for example )
String[] list = dir.list();
for (int i = 0; i < list.length; i++) {
String s = list[i];
@@ -123,12 +124,14 @@ public class Deltree extends Task {
removeDir(f);
} else {
if (!f.delete()) {
throw new BuildException("Unable to delete file " + f.getAbsolutePath());
throw new BuildException("Unable to delete file "
+ f.getAbsolutePath());
}
}
}
if (!dir.delete()) {
throw new BuildException("Unable to delete directory " + dir.getAbsolutePath());
throw new BuildException("Unable to delete directory "
+ dir.getAbsolutePath());
}
}
}


+ 2
- 0
src/main/org/apache/tools/ant/taskdefs/Execute.java View File

@@ -77,6 +77,8 @@ import java.util.Vector;
* @author thomas.haas@softwired-inc.com
* @author <a href="mailto:jtulley@novell.com">Jeff Tulley</a>
*
* @since Ant 1.2
*
* @version $Revision$
*/
public class Execute {


Loading…
Cancel
Save