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]

Reply via email to