cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4605) SortedMap is not returned when another unrelated method exists in the interface
Date Tue, 13 Nov 2012 18:02:12 GMT

    [ https://issues.apache.org/jira/browse/CXF-4605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13496371#comment-13496371
] 

Daniel Kulp commented on CXF-4605:
----------------------------------


The problem is whether due to TypeErasure of the generics can we even detect #2 or not.  
In your test case, CXF was detecting it to be a map of Object -> Object due to the erasure.
  That IS "supported" as it is treated as an "xsd:anyType" and the value mapped to a DOM object.
 Mostly what I'm trying to do is to traverse the various generics information that is available
to see if we can determine the actual type or whether the actual type isn't available and
we just get "Object" for the type.

I've just committed a couple more changes that will try and detect if the type erasure is
resulting in "Object" (as opposed to just being "Object" to begin with) and log a warning.
 
                
> SortedMap is not returned when another unrelated method exists in the interface
> -------------------------------------------------------------------------------
>
>                 Key: CXF-4605
>                 URL: https://issues.apache.org/jira/browse/CXF-4605
>             Project: CXF
>          Issue Type: Bug
>          Components: Aegis Databinding
>    Affects Versions: 2.7.0
>         Environment: Debian unstable / tomcat7 / opennjdk7
>            Reporter: Vassilis Virvilis
>            Assignee: Daniel Kulp
>             Fix For: 2.7.1
>
>         Attachments: ws-test-issue-4605.tgz, ws-test-issue-4605.tgz
>
>
>  During testing of bug 4534 I stumbled upon the following behavior. Subsets of tests
were passing when run standalone but failing when run in the full test suite.
> So I have narrowed it down to one method that fails when another is uncommented in the
interface.
> Interface:
>     // uncomment this for the next method to fail
>     // public Map<String, Map<Integer, Integer>> testDirectComplexMapResult();
>     // fail -- puts data into a hashmap instead of a SortedMap if the above is uncommented
>     public Map<String, SortedMap<Integer, Integer>> testDirectComplexTreeMapResult();
> Implementation:
>     //@Override
>     public Map<String, Map<Integer, Integer>> testDirectComplexMapResult()
{
>         final Map<String, Map<Integer, Integer>> result = new HashMap<String,
Map<Integer, Integer>>();
>         final TreeMap<Integer, Integer> map1 = new TreeMap<Integer, Integer>();
>         map1.put(1, 3);
>         result.put("key1", map1);
>         return result;
>     }
>     @Override
>     public Map<String, SortedMap<Integer, Integer>> testDirectComplexTreeMapResult()
{
>         final Map<String, SortedMap<Integer, Integer>> result = new HashMap<String,
SortedMap<Integer, Integer>>();
>         final TreeMap<Integer, Integer> map1 = new TreeMap<Integer, Integer>();
>         map1.put(1, 3);
>         map1.put(0, 2);
>         result.put("key1", map1);
>         return result;
>     }
> Client:
>     @Test
>     public void testDirectComplexTreeMapResult() {
>         final Map map = TestServiceFactory.getService()
>                 .testDirectComplexTreeMapResult();
>         log.info(map);
>         for (final Object vmap : map.values()) {
>             Assert.assertTrue(vmap instanceof SortedMap);
>         }
>     }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message