[ 
https://issues.apache.org/jira/browse/CXF-2303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Beryozkin resolved CXF-2303.
-----------------------------------

    Resolution: Fixed
      Assignee: Sergey Beryozkin

Thanks for spotting it, it was actually not possible to inject a SortedSet with 
this bug. Fixed now. 


> 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
>            Assignee: Sergey Beryozkin
>
> 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