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