diff options
author | Cedric Beust <cedric@beust.com> | 2014-09-14 10:01:36 -0700 |
---|---|---|
committer | Cedric Beust <cedric@beust.com> | 2014-09-14 10:01:36 -0700 |
commit | 460b51f6319bb8b8c621fce06346eaab7902c9b8 (patch) | |
tree | 3d51bf916ead63784171eb93654732ab5f6083ae | |
parent | e217da3bb340b5a319b79025fbb09f6207e5c3a2 (diff) | |
download | platform_external_jcommander-460b51f6319bb8b8c621fce06346eaab7902c9b8.tar.gz platform_external_jcommander-460b51f6319bb8b8c621fce06346eaab7902c9b8.tar.bz2 platform_external_jcommander-460b51f6319bb8b8c621fce06346eaab7902c9b8.zip |
Fix enumArgsFail.
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 53246b3..98f112e 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -1268,11 +1268,16 @@ public class JCommander { if (converterClass != null && converterClass.isEnum()) { try { result = Enum.valueOf((Class<? extends Enum>) converterClass, value); - } catch ( IllegalArgumentException e ) { - result = Enum.valueOf((Class<? extends Enum>) converterClass, value.toUpperCase()); + } catch (IllegalArgumentException e) { + try { + result = Enum.valueOf((Class<? extends Enum>) converterClass, value.toUpperCase()); + } catch (IllegalArgumentException ex) { + throw new ParameterException("Invalid value for " + optionName + " parameter. Allowed values:" + + EnumSet.allOf((Class<? extends Enum>) converterClass)); + } } catch (Exception e) { throw new ParameterException("Invalid value for " + optionName + " parameter. Allowed values:" + - EnumSet.allOf((Class<? extends Enum>) converterClass)); + EnumSet.allOf((Class<? extends Enum>) converterClass)); } } else { converter = instantiateConverter(optionName, converterClass); |