From bodewig@locus.apache.org Mon Sep 4 15:19:18 2000 Return-Path: Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 27166 invoked by uid 500); 4 Sep 2000 15:19:18 -0000 Delivered-To: apmail-jakarta-ant-cvs@apache.org Received: (qmail 27163 invoked by uid 1146); 4 Sep 2000 15:19:17 -0000 Date: 4 Sep 2000 15:19:17 -0000 Message-ID: <20000904151917.27161.qmail@locus.apache.org> From: bodewig@locus.apache.org To: jakarta-ant-cvs@apache.org Subject: cvs commit: jakarta-ant/src/main/org/apache/tools/ant/types Commandline.java bodewig 00/09/04 08:19:17 Modified: src/main/org/apache/tools/ant/taskdefs Javadoc.java Patch.java src/main/org/apache/tools/ant/types Commandline.java Log: and would fail if the execute method was called more than once on the same instance of the class. This is why the second in the nightly builds ("ant dist install") failed. Revision Changes Path 1.29 +38 -36 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java Index: Javadoc.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- Javadoc.java 2000/08/30 22:10:38 1.28 +++ Javadoc.java 2000/09/04 15:19:16 1.29 @@ -593,7 +593,8 @@ log("Generating Javadoc", Project.MSG_INFO); - cmd.setExecutable("javadoc"); + Commandline toExecute = (Commandline)cmd.clone(); + toExecute.setExecutable("javadoc"); // ------------------------------------------------ general javadoc arguments if (classpath == null) @@ -603,20 +604,20 @@ addReferencesToPath(sourcepathReferences, sourcePath); if (!javadoc1) { - cmd.createArgument().setValue("-classpath"); - cmd.createArgument().setPath(classpath); - cmd.createArgument().setValue("-sourcepath"); - cmd.createArgument().setPath(sourcePath); + toExecute.createArgument().setValue("-classpath"); + toExecute.createArgument().setPath(classpath); + toExecute.createArgument().setValue("-sourcepath"); + toExecute.createArgument().setPath(sourcePath); } else { - cmd.createArgument().setValue("-classpath"); - cmd.createArgument().setValue(sourcePath.toString() + + toExecute.createArgument().setValue("-classpath"); + toExecute.createArgument().setValue(sourcePath.toString() + System.getProperty("path.separator") + classpath.toString()); } if (version && doclet == null) - cmd.createArgument().setValue("-version"); + toExecute.createArgument().setValue("-version"); if (author && doclet == null) - cmd.createArgument().setValue("-author"); + toExecute.createArgument().setValue("-author"); // --------------------------------- javadoc2 arguments for default doclet @@ -628,11 +629,11 @@ throw new BuildException("The doclet name must be specified.", location); } else { - cmd.createArgument().setValue("-doclet"); - cmd.createArgument().setValue(doclet.getName()); + toExecute.createArgument().setValue("-doclet"); + toExecute.createArgument().setValue(doclet.getName()); if (doclet.getPath() != null) { - cmd.createArgument().setValue("-docletpath"); - cmd.createArgument().setPath(doclet.getPath()); + toExecute.createArgument().setValue("-docletpath"); + toExecute.createArgument().setPath(doclet.getPath()); } for (Enumeration e = doclet.getParams(); e.hasMoreElements();) { DocletParam param = (DocletParam)e.nextElement(); @@ -640,9 +641,9 @@ throw new BuildException("Doclet parameters must have a name"); } - cmd.createArgument().setValue(param.getName()); + toExecute.createArgument().setValue(param.getName()); if (param.getValue() != null) { - cmd.createArgument().setValue(param.getValue()); + toExecute.createArgument().setValue(param.getValue()); } } } @@ -650,8 +651,8 @@ if (bootclasspath != null || bootClasspathReferences.size() > 0) { addReferencesToPath(bootClasspathReferences, createBootclasspath()); - cmd.createArgument().setValue("-bootclasspath"); - cmd.createArgument().setPath(bootclasspath); + toExecute.createArgument().setValue("-bootclasspath"); + toExecute.createArgument().setPath(bootclasspath); } // add the links arguments @@ -669,13 +670,13 @@ throw new BuildException("The package list location for link " + la.getHref() + " must be provided because the link is offline"); } - cmd.createArgument().setValue("-linkoffline"); - cmd.createArgument().setValue(la.getHref()); - cmd.createArgument().setValue(packageListLocation); + toExecute.createArgument().setValue("-linkoffline"); + toExecute.createArgument().setValue(la.getHref()); + toExecute.createArgument().setValue(packageListLocation); } else { - cmd.createArgument().setValue("-link"); - cmd.createArgument().setValue(la.getHref()); + toExecute.createArgument().setValue("-link"); + toExecute.createArgument().setValue(la.getHref()); } } } @@ -699,9 +700,9 @@ if (space > 0){ String name = grp.substring(0, space); String pkgList = grp.substring(space + 1); - cmd.createArgument().setValue("-group"); - cmd.createArgument().setValue(name); - cmd.createArgument().setValue(pkgList); + toExecute.createArgument().setValue("-group"); + toExecute.createArgument().setValue(name); + toExecute.createArgument().setValue(pkgList); } } } @@ -715,9 +716,9 @@ if (title == null || packages == null) { throw new BuildException("The title and packages must be specified for group elements."); } - cmd.createArgument().setValue("-group"); - cmd.createArgument().setValue(title); - cmd.createArgument().setValue(packages); + toExecute.createArgument().setValue("-group"); + toExecute.createArgument().setValue(title); + toExecute.createArgument().setValue(packages); } } @@ -731,25 +732,25 @@ if (name.endsWith(".*")) { packages.addElement(name); } else { - cmd.createArgument().setValue(name); + toExecute.createArgument().setValue(name); } } if (packages.size() > 0) { - evaluatePackages(sourcePath, packages); + evaluatePackages(toExecute, sourcePath, packages); } } if ((sourceFiles != null) && (sourceFiles.length() > 0)) { StringTokenizer tok = new StringTokenizer(sourceFiles, ",", false); while (tok.hasMoreTokens()) { - cmd.createArgument().setValue(tok.nextToken().trim()); + toExecute.createArgument().setValue(tok.nextToken().trim()); } } if (packageList != null) { - cmd.createArgument().setValue("@" + packageList); + toExecute.createArgument().setValue("@" + packageList); } - log("Javadoc args: " + cmd, Project.MSG_VERBOSE); + log("Javadoc args: " + toExecute, Project.MSG_VERBOSE); log("Javadoc execution", Project.MSG_INFO); @@ -759,7 +760,7 @@ exe.setAntRun(project); exe.setWorkingDirectory(project.getBaseDir()); try { - exe.setCommandline(cmd.getCommandline()); + exe.setCommandline(toExecute.getCommandline()); exe.execute(); } catch (IOException e) { throw new BuildException("Javadoc failed: " + e, e, location); @@ -797,7 +798,8 @@ * with the packages found in that path subdirs matching one of the given * patterns. */ - private void evaluatePackages(Path sourcePath, Vector packages) { + private void evaluatePackages(Commandline toExecute, Path sourcePath, + Vector packages) { log("Source path = " + sourcePath.toString(), Project.MSG_VERBOSE); log("Packages = " + packages, Project.MSG_VERBOSE); @@ -813,7 +815,7 @@ for (int i = 0; i < packages.size(); i++) { if (matches(pack, (String) packages.elementAt(i))) { if (!addedPackages.contains(pack)) { - cmd.createArgument().setValue(pack); + toExecute.createArgument().setValue(pack); addedPackages.addElement(pack); } break; 1.6 +4 -3 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Patch.java Index: Patch.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Patch.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Patch.java 2000/08/03 11:25:12 1.5 +++ Patch.java 2000/09/04 15:19:16 1.6 @@ -145,16 +145,17 @@ location); } - cmd.setExecutable("patch"); + Commandline toExecute = (Commandline)cmd.clone(); + toExecute.setExecutable("patch"); if (originalFile != null) { - cmd.createArgument().setFile(originalFile); + toExecute.createArgument().setFile(originalFile); } Execute exe = new Execute(new LogStreamHandler(this, Project.MSG_INFO, Project.MSG_WARN), null); - exe.setCommandline(cmd.getCommandline()); + exe.setCommandline(toExecute.getCommandline()); try { exe.execute(); } catch (IOException e) { 1.10 +8 -0 jakarta-ant/src/main/org/apache/tools/ant/types/Commandline.java Index: Commandline.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/types/Commandline.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Commandline.java 2000/08/10 08:42:29 1.9 +++ Commandline.java 2000/09/04 15:19:17 1.10 @@ -327,4 +327,12 @@ return c; } + /** + * Clear out the whole command line. + */ + public void clear() { + executable = null; + arguments.removeAllElements(); + } + }