summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Beust <cedric@beust.com>2014-09-14 10:01:36 -0700
committerCedric Beust <cedric@beust.com>2014-09-14 10:01:36 -0700
commit460b51f6319bb8b8c621fce06346eaab7902c9b8 (patch)
tree3d51bf916ead63784171eb93654732ab5f6083ae
parente217da3bb340b5a319b79025fbb09f6207e5c3a2 (diff)
downloadplatform_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.java11
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);