You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "JC (JIRA)" <ji...@apache.org> on 2017/03/31 18:21:41 UTC

[jira] [Created] (CLOUDSTACK-9856) Possible code smell that returns always true in if condition

JC created CLOUDSTACK-9856:
------------------------------

             Summary: Possible code smell that returns always true in if condition
                 Key: CLOUDSTACK-9856
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9856
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
            Reporter: JC
            Priority: Trivial


Hi

In recent Github mirror, I've found following code smell.

Path: framework/db/src/com/cloud/utils/db/EcInfo.java

{code}
51             Class<?> rawClazz = (Class<?>)rawType;
52             try {
53                 if (!Modifier.isAbstract(rawClazz.getModifiers()) && !rawClazz.isInterface() &&     rawClazz.getConstructors().length != 0 &&
54                     rawClazz.getConstructor() != null) {
55                     rawClass = rawClazz;
56                 } else if (Set.class == rawClazz) {
57                     rawClass = HashSet.class;
58                 } else if (List.class == rawClazz) {
59                     rawClass = ArrayList.class;
60                 } else if (Collection.class == Collection.class) {
61                     rawClass = ArrayList.class;
62                 } else {
63                     assert (false) : " We don't know how to create this calss " + rawType.toStri    ng() + " for " + attr.field.getName();
64                 }
65             } catch (NoSuchMethodException e) {
66                 throw new CloudRuntimeException("Write your own support for " + rawClazz + " def    ined by " + attr.field.getName());
{code}

Since I don't have domain knowledge about this project, I have no idea, rawClazz can have other types rather Set or List. If rawClazz can have other types, it will always be ArrayList.class as default (Line 60 and 61). So, the else block is dead code. It seems this is intended but wanted to report just in case.

Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)