Author: mbenson Date: Tue Jul 17 10:36:28 2007 New Revision: 556987 URL: http://svn.apache.org/viewvc?view=rev&rev=556987 Log: fmt/refac
Modified: ant/core/trunk/WHATSNEW ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Retry.java ant/core/trunk/src/tests/antunit/taskdefs/retry-test.xml Modified: ant/core/trunk/WHATSNEW URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=556987&r1=556986&r2=556987 ============================================================================== --- ant/core/trunk/WHATSNEW (original) +++ ant/core/trunk/WHATSNEW Tue Jul 17 10:36:28 2007 @@ -186,6 +186,8 @@ * "rawblobs" attribute added to SQL task. +* Add new retry task container. + Changes from Ant 1.6.5 to Ant 1.7.0 =================================== Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Retry.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Retry.java?view=diff&rev=556987&r1=556986&r2=556987 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Retry.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Retry.java Tue Jul 17 10:36:28 2007 @@ -24,6 +24,7 @@ /** * Retries the nested task a set number of times + * @since Ant 1.7.1 */ public class Retry extends Task implements TaskContainer { @@ -31,19 +32,23 @@ * task to execute n times */ private Task nestedTask; - + /** * set retryCount to 1 by default */ private int retryCount = 1; - + /** * set the task */ - public void addTask(Task t) { + public synchronized void addTask(Task t) { + if (nestedTask != null) { + throw new BuildException("The retry task container accepts a single nested task" + + " (which may be a sequential task container)"); + } nestedTask = t; } - + /** * set the number of times to retry the task * @param n @@ -51,32 +56,30 @@ public void setRetryCount(int n) { retryCount = n; } - + /** * perform the work */ public void execute() throws BuildException { StringBuffer errorMessages = new StringBuffer(); - for(int i=0; i<=retryCount; i++) { + String br = getProject().getProperty("line.separator"); + for (int i = 0; i <= retryCount; i++) { try { nestedTask.perform(); break; } 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 { - errorMessages.append(e.getMessage()); + errorMessages.append(e.getMessage()); + if (i >= retryCount) { 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("] attempts; giving up.").append(br); + exceptionMessage.append("Error messages:").append(br); exceptionMessage.append(errorMessages); throw new BuildException(exceptionMessage.toString(), getLocation()); } + log("Attempt [" + i + "]: error occurred; retrying...", e, Project.MSG_INFO); + errorMessages.append(br); } } } Modified: ant/core/trunk/src/tests/antunit/taskdefs/retry-test.xml URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/retry-test.xml?view=diff&rev=556987&r1=556986&r2=556987 ============================================================================== --- ant/core/trunk/src/tests/antunit/taskdefs/retry-test.xml (original) +++ ant/core/trunk/src/tests/antunit/taskdefs/retry-test.xml Tue Jul 17 10:36:28 2007 @@ -7,12 +7,12 @@ <property name="dest" value="${java.io.tmpdir}/dest"/> <!-- just in case this ever becomes a legit url... --> <property name="src" value="http://iojasodjojaosdj"/> - <au:expectfailure expectedmessage="Task [get] failed after [${i}] attempts, giving up"> + <au:expectfailure expectedmessage="Task [get] failed after [${i}] attempts; giving up"> <retry retrycount="${i}"> <get src="${src}" dest="${dest}"/> </retry> </au:expectfailure> - <au:assertLogContains text="Attempt [1] error occured, retrying..."/> + <au:assertLogContains text="Attempt [1]: error occurred; retrying..."/> </target> <target name="test-success"> @@ -21,7 +21,7 @@ <retry retrycount="${i}"> <touch file="${dest}"/> </retry> - <au:assertLogDoesntContain text="Attempt [1] error occured, retrying..."/> + <au:assertLogDoesntContain text="Attempt [1]: error occurred; retrying..."/> </target> </project> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]