Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/5215#discussion_r160674427 --- Diff: flink-yarn/src/main/java/org/apache/flink/yarn/cli/FlinkYarnSessionCli.java --- @@ -660,7 +570,25 @@ public int run( "yarn application -kill " + applicationId.getOpt()); yarnCluster.disconnect(); } else { - runInteractiveCli(yarnCluster, true); + ScheduledThreadPoolExecutor scheduledExecutorService = new ScheduledThreadPoolExecutor(1); + + try (YarnApplicationStatusMonitor yarnApplicationStatusMonitor = new YarnApplicationStatusMonitor( + yarnDescriptor.getYarnClient(), + yarnCluster.getApplicationId(), + new ScheduledExecutorServiceAdapter(scheduledExecutorService))) { --- End diff -- The `ScheduledExecutor` gives a better abstraction because it does not expose service control methods like shutdown to the callee. I think the Java abstraction is slightly broken in this regard.
---