Github user GJL commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5219#discussion_r159402067
  
    --- Diff: 
flink-clients/src/test/java/org/apache/flink/client/CliFrontendSavepointTest.java
 ---
    @@ -178,65 +185,30 @@ public void testTriggerSavepointCustomTarget() throws 
Exception {
        public void testDisposeSavepointSuccess() throws Exception {
                replaceStdOutAndStdErr();
     
    -           try {
    -                   String savepointPath = "expectedSavepointPath";
    -                   ActorGateway jobManager = mock(ActorGateway.class);
    +           String savepointPath = "expectedSavepointPath";
     
    -                   Promise<Object> triggerResponse = new 
scala.concurrent.impl.Promise.DefaultPromise<>();
    +           final CompletableFuture<Acknowledge> disposeCallFuture = new 
CompletableFuture<>();
     
    -                   when(jobManager.ask(
    -                                   Mockito.eq(new 
DisposeSavepoint(savepointPath)),
    -                                   
any(FiniteDuration.class))).thenReturn(triggerResponse.future());
    +           ClusterClient clusterClient = new 
DisposeSavepointClusterClient((String path, Time timeout) -> {
    +                   disposeCallFuture.complete(Acknowledge.get());
    +                   return 
CompletableFuture.completedFuture(Acknowledge.get());
    +           });
     
    -                   triggerResponse.success(getDisposeSavepointSuccess());
    +           try {
     
    -                   CliFrontend frontend = new MockCliFrontend(
    -                                   CliFrontendTestUtils.getConfigDir(), 
jobManager);
    +                   CliFrontend frontend = new 
MockedCliFrontend(clusterClient);
     
                        String[] parameters = { "-d", savepointPath };
    -                   int returnCode = frontend.savepoint(parameters);
    +                   frontend.savepoint(parameters);
     
    -                   assertEquals(0, returnCode);
    -                   verify(jobManager, times(1)).ask(
    -                                   Mockito.eq(new 
DisposeSavepoint(savepointPath)),
    -                                   any(FiniteDuration.class));
    +                   disposeCallFuture.get();
    --- End diff --
    
    Everything is run in the main thread:
    ```
                @Override
                public CompletableFuture<Acknowledge> disposeSavepoint(String 
savepointPath, Time timeout) {
                        return disposeSavepointFunction.apply(savepointPath, 
timeout);
                }
    ```
    There is no need to wait for the completion of this future. The future can 
be removed.


---

Reply via email to