diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/TestJobResourceUploader.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/TestJobResourceUploader.java
index c49d771..bbfe2fb 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/TestJobResourceUploader.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/TestJobResourceUploader.java
@@ -399,7 +399,6 @@
       Path expectedRemotePath) throws IOException, URISyntaxException {
     Path dstPath = new Path("hdfs://localhost:1234/home/hadoop/");
     DistributedFileSystem fs = mock(DistributedFileSystem.class);
-    when(fs.makeQualified(any(Path.class))).thenReturn(dstPath);
     // make sure that FileUtils.copy() doesn't try to copy anything
     when(fs.mkdirs(any(Path.class))).thenReturn(false);
     when(fs.getUri()).thenReturn(dstPath.toUri());
@@ -408,7 +407,6 @@
     JobConf jConf = new JobConf();
     Path originalPath = spy(path);
     FileSystem localFs = mock(FileSystem.class);
-    when(localFs.makeQualified(any(Path.class))).thenReturn(path);
     FileStatus fileStatus = mock(FileStatus.class);
     when(localFs.getFileStatus(any(Path.class))).thenReturn(fileStatus);
     when(fileStatus.isDirectory()).thenReturn(true);
@@ -422,14 +420,8 @@
         originalPath, jConf, (short) 1);
 
     ArgumentCaptor<Path> pathCaptor = ArgumentCaptor.forClass(Path.class);
-    verify(fs, times(2)).makeQualified(pathCaptor.capture());
-    List<Path> paths = pathCaptor.getAllValues();
-    // first call is invoked on a path which was created by the test,
-    // but the second one is created in copyRemoteFiles()
-    Assert.assertEquals("Expected remote path",
-        expectedRemotePath, paths.get(0));
-    Assert.assertEquals("Expected remote path",
-        expectedRemotePath, paths.get(1));
+    verify(fs).makeQualified(pathCaptor.capture());
+    Assert.assertEquals("Path", expectedRemotePath, pathCaptor.getValue());
   }
 
   private void testErasureCodingSetting(boolean defaultBehavior)
