Allow System#exit() from command line tools

This commit adds SuppressForbidden annotations to command line tools to
still allow to call System#exit() (see also issue 12596 in ES core).

Original commit: elastic/x-pack-elasticsearch@1dd3f1dcb1
This commit is contained in:
Daniel Mitterdorfer 2015-11-04 13:37:44 +01:00
parent 1d6845190f
commit 081ffbeced
3 changed files with 21 additions and 3 deletions

View File

@ -7,6 +7,7 @@ package org.elasticsearch.shield.authc.esusers.tool;
import org.apache.commons.cli.CommandLine;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.cli.CheckFileCommand;
import org.elasticsearch.common.cli.CliTool;
import org.elasticsearch.common.cli.CliToolConfig;
@ -51,7 +52,12 @@ public class ESUsersTool extends CliTool {
public static void main(String[] args) {
ExitStatus exitStatus = new ESUsersTool().execute(args);
System.exit(exitStatus.status());
exit(exitStatus.status());
}
@SuppressForbidden(reason = "Allowed to exit explicitly from #main()")
private static void exit(int status) {
System.exit(status);
}
public ESUsersTool() {

View File

@ -6,6 +6,7 @@
package org.elasticsearch.shield.crypto.tool;
import org.apache.commons.cli.CommandLine;
import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.cli.CheckFileCommand;
import org.elasticsearch.common.cli.CliTool;
import org.elasticsearch.common.cli.CliToolConfig;
@ -37,7 +38,12 @@ public class SystemKeyTool extends CliTool {
public static void main(String[] args) throws Exception {
ExitStatus exitStatus = new SystemKeyTool().execute(args);
System.exit(exitStatus.status());
exit(exitStatus.status());
}
@SuppressForbidden(reason = "Allowed to exit explicitly from #main()")
private static void exit(int status) {
System.exit(status);
}
private static final CliToolConfig CONFIG = config("syskey", SystemKeyTool.class)

View File

@ -6,6 +6,7 @@
package org.elasticsearch.watcher.trigger.schedule.tool;
import org.apache.commons.cli.CommandLine;
import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.cli.CliTool;
import org.elasticsearch.common.cli.CliToolConfig;
import org.elasticsearch.common.cli.Terminal;
@ -32,7 +33,12 @@ public class CronEvalTool extends CliTool {
public static void main(String[] args) throws Exception {
ExitStatus exitStatus = new CronEvalTool().execute(args);
System.exit(exitStatus.status());
exit(exitStatus.status());
}
@SuppressForbidden(reason = "Allowed to exit explicitly from #main()")
private static void exit(int status) {
System.exit(status);
}
public CronEvalTool() {