diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java index 6946f3cd2e7..091bcd9c58c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java @@ -757,7 +757,7 @@ public void handle(Event event) {} } @Test - public void testGetApplications() throws IOException, YarnException { + public void testGetApplications() throws Exception { /** * 1. Submit 3 applications alternately in two queues * 2. Test each of the filters @@ -806,8 +806,12 @@ public void handle(Event event) {} SubmitApplicationRequest submitRequest = mockSubmitAppRequest( appId, appNames[i], queues[i % queues.length], new HashSet(tags.subList(0, i + 1))); + // make sure each app is submitted at a different time + Thread.sleep(1); rmService.submitApplication(submitRequest); - submitTimeMillis[i] = System.currentTimeMillis(); + submitTimeMillis[i] = rmService.getApplicationReport( + GetApplicationReportRequest.newInstance(appId)) + .getApplicationReport().getStartTime(); } // Test different cases of ClientRMService#getApplications() @@ -822,19 +826,19 @@ public void handle(Event event) {} // Check start range request = GetApplicationsRequest.newInstance(); - request.setStartRange(submitTimeMillis[0], System.currentTimeMillis()); + request.setStartRange(submitTimeMillis[0] + 1, System.currentTimeMillis()); // 2 applications are submitted after first timeMills assertEquals("Incorrect number of matching start range", 2, rmService.getApplications(request).getApplicationList().size()); // 1 application is submitted after the second timeMills - request.setStartRange(submitTimeMillis[1], System.currentTimeMillis()); + request.setStartRange(submitTimeMillis[1] + 1, System.currentTimeMillis()); assertEquals("Incorrect number of matching start range", 1, rmService.getApplications(request).getApplicationList().size()); // no application is submitted after the third timeMills - request.setStartRange(submitTimeMillis[2], System.currentTimeMillis()); + request.setStartRange(submitTimeMillis[2] + 1, System.currentTimeMillis()); assertEquals("Incorrect number of matching start range", 0, rmService.getApplications(request).getApplicationList().size());