InjectionUtils contains unreachable code
----------------------------------------

                 Key: CXF-2303
                 URL: https://issues.apache.org/jira/browse/CXF-2303
             Project: CXF
          Issue Type: Bug
          Components: REST
            Reporter: Andreas Sahlbach


During a recent debug session I noticed some IMHO strange code in 
org/apache/cxf/jaxrs/utils/InjectionUtils.java. While I was debugging an 
outdated version, the current code in trunk seems to have the same errors. 
Referring to this version 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?revision=777126

Here you can find:

    public static boolean isSupportedCollectionOrArray(Class<?> type) {
        return List.class.isAssignableFrom(type)
            || Set.class.isAssignableFrom(type)
            || SortedSet.class.isAssignableFrom(type)
            || type.isArray();
    }

and

private static Object injectIntoCollectionOrArray(Class<?> rawType, Type 
genericType,
                                        MultivaluedMap<String, String> values,
                                        boolean isbean, boolean decoded,
                                        ParameterType pathParam, Message 
message) {
        Class<?> type = null;
        if (List.class.isAssignableFrom(rawType)) {
            type = ArrayList.class;
        } else if (Set.class.isAssignableFrom(rawType)) {
            type = HashSet.class;
        } else if (SortedSet.class.isAssignableFrom(rawType)) {
            type = TreeSet.class;
        }
       [...]

Because Set is a SuperInterface of SortedSet, the boolean of the first example 
can be simplified and in the second example the proper clause for SortedSet is 
never reached, because the Set clause is always true for Sets and SortedSets. 

At least that's what I think. I have no concrete bug though, just wanted to 
report. :-)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to