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

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

Just committed some more fixes for this.  I'd appreciate you testing tomorrows 
snapshots with it.

That said, you are rapidly getting out of our "this is supported" areas of 
Aegis.   Nothing in Aegis really is accounting for custom subclasses of the 
java Collections.   Passing the Generics through the various subclasses and 
interfaces is very complex and error prone so not something we really support.  
 Direct instances of the various collections that have their types directly 
declared there should be fine.   

That said, my commit MAY allow a lot more strange cases of Maps and such to 
work.  
                
> 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

Reply via email to