Browse Source

<retry>: Collect former error messages and re-throw them.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@540044 13f79535-47bb-0310-9956-ffa450edef68
master
Jan Materne 18 years ago
parent
commit
656c4b15dc
1 changed files with 12 additions and 1 deletions
  1. +12
    -1
      src/main/org/apache/tools/ant/taskdefs/Retry.java

+ 12
- 1
src/main/org/apache/tools/ant/taskdefs/Retry.java View File

@@ -56,6 +56,7 @@ public class Retry extends Task implements TaskContainer {
* perform the work
*/
public void execute() throws BuildException {
StringBuffer errorMessages = new StringBuffer();
for(int i=0; i<=retryCount; i++) {
try {
nestedTask.perform();
@@ -63,8 +64,18 @@ public class Retry extends Task implements TaskContainer {
} catch (Exception e) {
if (i<retryCount) {
log("Attempt ["+i+"] error occured, retrying...", e, Project.MSG_INFO);
errorMessages.append(e.getMessage());
errorMessages.append(getProject().getProperty("line.separator"));
} else {
throw new BuildException("Task ["+nestedTask.getTaskName()+"] failed after ["+retryCount+"] attempts, giving up");
errorMessages.append(e.getMessage());
StringBuffer exceptionMessage = new StringBuffer();
exceptionMessage.append("Task [").append(nestedTask.getTaskName());
exceptionMessage.append("] failed after [").append(retryCount);
exceptionMessage.append("] attempts, giving up.");
exceptionMessage.append(getProject().getProperty("line.separator"));
exceptionMessage.append("Error messages:").append(getProject().getProperty("line.separator"));
exceptionMessage.append(errorMessages);
throw new BuildException(exceptionMessage.toString(), getLocation());
}
}
}


Loading…
Cancel
Save