[ 
https://issues.apache.org/jira/browse/LOG4J2-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17464688#comment-17464688
 ] 

ASF subversion and git services commented on LOG4J2-56:
-------------------------------------------------------

Commit 1508e2cd0e1798eb4e7ab41463d0b1bed87a5320 in logging-log4j1's branch 
refs/heads/BRANCH_2_0_EXPERIMENTAL from Ralph Goers
[ https://gitbox.apache.org/repos/asf?p=logging-log4j1.git;h=1508e2c ]

Fix LOG4J2-56

git-svn-id: 
https://svn.apache.org/repos/asf/logging/log4j/branches/BRANCH_2_0_EXPERIMENTAL@1240019
 13f79535-47bb-0310-9956-ffa450edef68


> Level.toLevel throws IllegalArgumentException instead of returning default 
> Level
> --------------------------------------------------------------------------------
>
>                 Key: LOG4J2-56
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-56
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 0.1
>         Environment: Java 6
>            Reporter: John Owen Atala
>            Assignee: Ralph Goers
>            Priority: Minor
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> org.apache.logging.log4j.Level.toLevel(String, Level) ( Level.java line 100) 
> uses enum static method valueOf(String) which throws IllegalArgumentException 
> instead of returning null when enum const doesnt exists. This makes the 
> methods Level.toLevel throw the exception instead of return default value.
> Solution:
> You can:
> a) sorround it with a try-catch statement, like:
>         try {
>                       return valueOf(sArg);
>               } catch (Exception e) {
>                       //exception doesnt matter
>                       return defaultLevel;
>               }
> b) translate manually de String to a enum constant, like:
>         for (Level level : values()) {
>                       if (level.name().equals(sArg)) {
>                               return level;
>                       }
>               }
>         return defaultLevel;
> I prefer b) because it saves the try-catch context and the for is nearly the 
> same that the valueOf should do.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to