fix: provide a better error message when option parsing fails (#27354)
closes: #16260 Signed-off-by: Steve Hawkins <shawkins@redhat.com>
This commit is contained in:
parent
8d9439913c
commit
51590668f5
2 changed files with 12 additions and 2 deletions
|
@ -70,8 +70,9 @@ class AeshConsoleCallbackImpl extends AeshConsoleCallback {
|
|||
} catch (Exception e) {
|
||||
console.stop();
|
||||
|
||||
if (e instanceof OptionParserException) {
|
||||
System.err.println("Unknown command: " + aeshLine.getWords().get(0));
|
||||
if (e instanceof OptionParserException && "Option: - must be followed by a valid operator".equals(e.getMessage())) {
|
||||
System.err.println("Please double check your command options, one or more of them are not specified correctly. "
|
||||
+ "It is possible to have unintentional overlap with other options. e.g. using --clientid will get mistaken for --client, however --cclientid is needed.");
|
||||
} else {
|
||||
System.err.println(e.getMessage());
|
||||
}
|
||||
|
|
|
@ -226,6 +226,15 @@ public class KcAdmTest extends AbstractAdmCliTest {
|
|||
Assert.assertEquals("try help", "Try '" + CMD + " help set-password' for more information", exe.stderrLines().get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadOverlappingOption() {
|
||||
KcAdmExec exe = KcAdmExec.execute("config credentials --server http://localhost:8080 --realm master --username admin --password admin");
|
||||
|
||||
assertExitCodeAndStreamSizes(exe, 1, 0, 1);
|
||||
Assert.assertEquals("stderr first line", "Please double check your command options, one or more of them are not specified correctly. "
|
||||
+ "It is possible to have unintentional overlap with other options. e.g. using --clientid will get mistaken for --client, however --cclientid is needed.", exe.stderrLines().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCredentialsServerAndRealmWithDefaultConfig() {
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue