You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Andrea Cosentino (JIRA)" <ji...@apache.org> on 2015/12/13 14:51:46 UTC

[jira] [Commented] (KARAF-4184) ArgumentCompleter has incorrect check for enum type

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

Andrea Cosentino commented on KARAF-4184:
-----------------------------------------

PR submitted:
https://github.com/apache/karaf/pull/117

> ArgumentCompleter has incorrect check for enum type
> ---------------------------------------------------
>
>                 Key: KARAF-4184
>                 URL: https://issues.apache.org/jira/browse/KARAF-4184
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-shell
>    Affects Versions: 4.0.3
>            Reporter: Stuart McCulloch
>
> https://github.com/apache/karaf/blob/karaf-4.0.3/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java#L180
> {code}
> if (type.isAssignableFrom(Enum.class)) {
> {code}
> should really be:
> {code}
> if (type.isEnum()) {
> {code}
> because otherwise the only time that branch will be taken is when 'type' is exactly Enum.class or a superclass, as per the spec of isAssignableFrom. It won't be taken when the field is a concrete enum class with actual values.
> If you want to stick with "isAssignableFrom" then the Enum check should be:
> {code}
> if (Enum.class.isAssignableFrom(type)) {
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)