JDK1.4 concurrency jar upgraded to backport 2.2
diff --git a/.classpath b/.classpath
index 3fd419e..e330834 100644
--- a/.classpath
+++ b/.classpath
@@ -5,11 +5,11 @@
 	<classpathentry kind="src" path="test/src"/>

 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

 	<classpathentry kind="lib" path="3rdparty/junit.jar"/>

-	<classpathentry kind="lib" path="3rdparty/util-concurrent.jar"/>

 	<classpathentry kind="lib" path="3rdparty/qdox-1.5.jar"/>

 	<classpathentry kind="lib" path="3rdparty/bsh-2.0b4.jar"/>

 	<classpathentry kind="lib" path="3rdparty/ant-launcher.jar"/>

 	<classpathentry kind="lib" path="3rdparty/ant.jar"/>

 	<classpathentry kind="var" path="TOOLS15_LIB"/>

+	<classpathentry kind="lib" path="3rdparty/backport-util-concurrent-2.2.jar"/>

 	<classpathentry kind="output" path="z_build"/>

 </classpath>

diff --git a/3rdparty/backport-util-concurrent-2.2.jar b/3rdparty/backport-util-concurrent-2.2.jar
new file mode 100644
index 0000000..338e546
--- /dev/null
+++ b/3rdparty/backport-util-concurrent-2.2.jar
Binary files differ
diff --git a/3rdparty/util-concurrent.jar b/3rdparty/util-concurrent.jar
deleted file mode 100644
index 66ad502..0000000
--- a/3rdparty/util-concurrent.jar
+++ /dev/null
Binary files differ
diff --git a/build.properties b/build.properties
index d2f0f69..197c976 100644
--- a/build.properties
+++ b/build.properties
@@ -16,6 +16,7 @@
 #
 beanshell.jar=bsh-2.0b4.jar
 qdox.jar=qdox-1.5.jar
+concurrent.jar=backport-util-concurrent-2.2.jar
 
 #
 # Names of distributions
diff --git a/build.xml b/build.xml
index 0491ec9..8f35290 100644
--- a/build.xml
+++ b/build.xml
@@ -101,7 +101,7 @@
         <include name="${beanshell.jar}" />
         <include name="junit.jar" />
         <include name="${qdox.jar}" />
-        <include name="util-concurrent.jar" />
+      	<include name="${concurrent.jar}" />
       </fileset>
     </path>
 
@@ -153,7 +153,7 @@
   
   <target name="test-15-v4">
     <ant inheritall="no" antfile="test/v4/build.xml" />
-    <ant inheritall="no" antfile="test/v4/build.xml" target="run-jdk14" /> 
+    <ant inheritall="no" antfile="test/v4/build.xml" target="run-jdk14" />
   </target>
 
   <target name="tmp">
@@ -198,7 +198,7 @@
     <antcall target="clean-unjar" />
     <antcall target="extract-qdox-jar" />
     <antcall target="extract-beanshell-jar" />
-    <antcall target="extract-util-concurrent-jar" />
+    <antcall target="extract-concurrent-jar" />
     <delete quiet="true" file="${jdk14.testng.jar}" />
     <jar destfile="${jdk14.testng.jar}" update="true">
       <manifest>
@@ -211,7 +211,7 @@
   
   <target name="dist-14-nobsh">
     <antcall target="clean-unjar" />
-    <antcall target="extract-util-concurrent-jar" />
+    <antcall target="extract-concurrent-jar" />
     <jar destfile="${other.jars.dir}/${jdk14.testng.nobsh.jar}" update="true">
       <manifest>
         <attribute name="Main-Class" value="org.testng.TestNG" />
@@ -238,8 +238,8 @@
            overwrite="true" />
   </target>
 
-  <target name="extract-util-concurrent-jar">
-    <unjar src="3rdparty/util-concurrent.jar"
+  <target name="extract-concurrent-jar">
+    <unjar src="3rdparty/${concurrent.jar}"
            dest="${build.3rdparty.dir}"
            overwrite="true" />
   </target>
@@ -297,7 +297,7 @@
                   excludes="test-output/**,report/**,v4/**" />
       <zipfileset dir="3rdparty"
                   prefix="3rdparty"
-                  includes="${qdox.jar},${beanshell.jar},util-concurrent.jar" />
+                  includes="${qdox.jar},${beanshell.jar},${concurrent.jar}" />
     </zip>
   </target>
   
diff --git a/src/jdk14/org/testng/internal/remote/SlavePool.java b/src/jdk14/org/testng/internal/remote/SlavePool.java
index b1aa6c8..396b3b4 100644
--- a/src/jdk14/org/testng/internal/remote/SlavePool.java
+++ b/src/jdk14/org/testng/internal/remote/SlavePool.java
@@ -1,7 +1,5 @@
 package org.testng.internal.remote;
 
-import edu.emory.mathcs.util.concurrent.LinkedBlockingQueue;
-
 import java.io.IOException;
 import java.net.Socket;
 import java.util.HashMap;
@@ -9,14 +7,15 @@
 
 import org.testng.remote.ConnectionInfo;
 
+import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
+
 /**
  * This class maintains a pool of slaves (represented by sockets).
  * 
  * @author cbeust
  */
 public class SlavePool {
-  private static LinkedBlockingQueue m_hosts =
-    new LinkedBlockingQueue();
+  private static LinkedBlockingQueue m_hosts = new LinkedBlockingQueue();
   private static Map<Socket, ConnectionInfo> m_connectionInfos =
     new HashMap<Socket, ConnectionInfo>();
   
diff --git a/src/jdk14/org/testng/internal/thread/ThreadUtil.java b/src/jdk14/org/testng/internal/thread/ThreadUtil.java
index 8f20560..5419b28 100644
--- a/src/jdk14/org/testng/internal/thread/ThreadUtil.java
+++ b/src/jdk14/org/testng/internal/thread/ThreadUtil.java
@@ -26,7 +26,7 @@
       return new ThreadFactoryImpl(name);
    }
 
-   public static class ThreadFactoryImpl implements IThreadFactory, edu.emory.mathcs.util.concurrent.ThreadFactory {
+   public static class ThreadFactoryImpl implements IThreadFactory, edu.emory.mathcs.backport.java.util.concurrent.ThreadFactory {
       private String m_methodName;
 
       public ThreadFactoryImpl(String name) {
diff --git a/src/jdk14/org/testng/internal/thread/port/CountDownAdapter.java b/src/jdk14/org/testng/internal/thread/port/CountDownAdapter.java
index 1043972..fb32a99 100644
--- a/src/jdk14/org/testng/internal/thread/port/CountDownAdapter.java
+++ b/src/jdk14/org/testng/internal/thread/port/CountDownAdapter.java
@@ -1,8 +1,9 @@
 package org.testng.internal.thread.port;
 
 import org.testng.internal.thread.ICountDown;
-import edu.emory.mathcs.util.concurrent.CountDownLatch;
-import edu.emory.mathcs.util.concurrent.TimeUnit;
+
+import edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
 
 /**
  * CountDownLatch adapter.
diff --git a/src/jdk14/org/testng/internal/thread/port/ExecutorAdapter.java b/src/jdk14/org/testng/internal/thread/port/ExecutorAdapter.java
index d13d3f3..a64a9fc 100644
--- a/src/jdk14/org/testng/internal/thread/port/ExecutorAdapter.java
+++ b/src/jdk14/org/testng/internal/thread/port/ExecutorAdapter.java
@@ -5,9 +5,9 @@
 import org.testng.internal.thread.IFutureResult;
 import org.testng.internal.thread.IThreadFactory;
 
-import edu.emory.mathcs.util.concurrent.ArrayBlockingQueue;
-import edu.emory.mathcs.util.concurrent.ThreadPoolExecutor;
-import edu.emory.mathcs.util.concurrent.TimeUnit;
+import edu.emory.mathcs.backport.java.util.concurrent.ArrayBlockingQueue;
+import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
 
 /**
  * ThreadPoolExecutor adaptor.
@@ -21,7 +21,7 @@
             0L,
             TimeUnit.MILLISECONDS,
             new ArrayBlockingQueue(threadCount),
-            (edu.emory.mathcs.util.concurrent.ThreadFactory) tf.getThreadFactory());
+            (edu.emory.mathcs.backport.java.util.concurrent.ThreadFactory) tf.getThreadFactory());
    }
 
 
diff --git a/src/jdk14/org/testng/internal/thread/port/FutureResultAdapter.java b/src/jdk14/org/testng/internal/thread/port/FutureResultAdapter.java
index 4df965b..a5ca584 100644
--- a/src/jdk14/org/testng/internal/thread/port/FutureResultAdapter.java
+++ b/src/jdk14/org/testng/internal/thread/port/FutureResultAdapter.java
@@ -4,8 +4,8 @@
 import org.testng.internal.thread.IFutureResult;
 import org.testng.internal.thread.ThreadExecutionException;
 
-import edu.emory.mathcs.util.concurrent.ExecutionException;
-import edu.emory.mathcs.util.concurrent.Future;
+import edu.emory.mathcs.backport.java.util.concurrent.ExecutionException;
+import edu.emory.mathcs.backport.java.util.concurrent.Future;
 
 /**
  * IFutureResult implementation and Future adapter.
diff --git a/src/jdk14/org/testng/internal/thread/port/PooledExecutorAdapter.java b/src/jdk14/org/testng/internal/thread/port/PooledExecutorAdapter.java
index 81fcd41..a783533 100644
--- a/src/jdk14/org/testng/internal/thread/port/PooledExecutorAdapter.java
+++ b/src/jdk14/org/testng/internal/thread/port/PooledExecutorAdapter.java
@@ -3,10 +3,10 @@
 import org.testng.TestNGException;
 import org.testng.internal.thread.IPooledExecutor;
 
-import edu.emory.mathcs.util.concurrent.LinkedBlockingQueue;
-import edu.emory.mathcs.util.concurrent.RejectedExecutionException;
-import edu.emory.mathcs.util.concurrent.ThreadPoolExecutor;
-import edu.emory.mathcs.util.concurrent.TimeUnit;
+import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
+import edu.emory.mathcs.backport.java.util.concurrent.RejectedExecutionException;
+import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
 
 /**
  * IPooledExecutor implementation based on ThreadPoolExecutor.
diff --git a/test-14/build.xml b/test-14/build.xml
index 53f4dd9..84e3b4b 100644
--- a/test-14/build.xml
+++ b/test-14/build.xml
@@ -17,9 +17,8 @@
 		<fileset dir="${lib.dir}">
 			<include name="junit.jar" />
 			<include name="${qdox.jar}" />
-			<include name="concurrent-1.3.4.jar" />
 			<include name="${beanshell.jar}"/>
-			<include name="util-concurrent.jar" />
+			<include name="${concurrent.jar}" />
 		</fileset>
 	</path>
 
@@ -88,9 +87,12 @@
 			<xmlfileset dir="${test14.dir}" includes="testng.xml"/>
 		</testng-14>
    	
+
 		<echo>                                -- Running JDK 1.4 tests (1.4)--</echo>
 		<echo>                                -- ${jdk15.testng.jar} --</echo>
-
+		<!--
+		JDK1.4 tests run with JDK5 are available through the test/build.xml
+		
 		<taskdef name="testng-15" 
             classname="org.testng.TestNGAntTask"
             classpath="${jdk15.testng.jar}"/>
@@ -100,7 +102,7 @@
            sourcedir="${test.src.dir}">
       <xmlfileset dir="${test14.dir}" includes="testng.xml"/>
      </testng-15>
-   	
+   	 -->
      <antcall target="clean.tmp" />
 	</target>
 
@@ -150,7 +152,7 @@
       <junitreport todir="${junit.report.dir}">
          <fileset dir="${testng.report.dir}">
             <include name="*.xml" />
-         	<exclude name="testng-failures.xml"/>
+         	<exclude name="testng-failed.xml"/>
          </fileset>
          <report format="noframes" todir="${junit.report.dir}" />
       </junitreport>
diff --git a/test-14/v4/build.xml b/test-14/v4/build.xml
index 5fc4d36..c0b2027 100644
--- a/test-14/v4/build.xml
+++ b/test-14/v4/build.xml
@@ -17,9 +17,8 @@
        <fileset dir="${lib.dir}">
           <include name="junit.jar" />
           <include name="${qdox.jar}" />
-          <include name="concurrent-1.3.4.jar" />
-         <include name="${beanshell.jar}"/>
-          <include name="util-concurrent.jar" />
+		  <include name="${beanshell.jar}"/>
+          <include name="${concurrent.jar}" />
        </fileset>
     </path>
 
@@ -87,6 +86,9 @@
 
      <echo message="                                -- Running JDK 1.4 tests (v4)--" />
      <echo message="                                -- ${jdk15.testng.jar} --" />
+   	<!--
+   	JDK1.4 tests run with JDK5 are available through the test/build.xml
+   	
      <taskdef name="testng-15" 
             classname="org.testng.TestNGAntTask"
             classpath="${jdk15.testng.jar}"/>
@@ -96,7 +98,7 @@
            sourcedir="${test.src.dir}">
       <xmlfileset dir="${test14.dir}" includes="testng.xml"/>
      </testng-15>
-
+		-->
      <antcall target="clean.tmp" />
    </target>
 
@@ -142,15 +144,15 @@
    <!-- Reports                                                              -->
    <!-- ==================================================================== -->
 
-   <target name="reports">
-      <junitreport todir="${junit.report.dir}">
-         <fileset dir="${testng.report.dir}">
-            <include name="*.xml" />
-         	<exclude name="testng-failures.xml"/>
-         </fileset>
-         <report format="noframes" todir="${junit.report.dir}" />
-      </junitreport>
-   </target>
+	<target name="reports">
+		<junitreport todir="${junit.report.dir}">
+			<fileset dir="${testng.report.dir}">
+				<include name="*.xml" />
+				<exclude name="testng-failed.xml"/>
+			</fileset>
+			<report format="noframes" todir="${junit.report.dir}" />
+		</junitreport>
+	</target>
 
    <target name="clean.tmp">
       <delete dir="${basedir}/test-output-tests" />
diff --git a/test/build.xml b/test/build.xml
index 1a8db7c..9c790e7 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -139,7 +139,7 @@
 		<junitreport todir="${junit.report.dir}">
 			<fileset dir="${testng.report.dir}">
 				<include name="*.xml"/>
-				<exclude name="testng-failures.xml"/>
+				<exclude name="testng-failed.xml"/>
 			</fileset>
 			<report format="noframes" todir="${junit.report.dir}"/>
 		</junitreport>