You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Stuart McCulloch (JIRA)" <ji...@apache.org> on 2015/12/09 20:31:11 UTC

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

Stuart McCulloch created KARAF-4184:
---------------------------------------

             Summary: 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)