Author: sergeyb Date: Mon Nov 14 12:26:58 2011 New Revision: 1201682 URL: http://svn.apache.org/viewvc?rev=1201682&view=rev Log: Merged revisions 1201681 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.4.x-fixes
................ r1201681 | sergeyb | 2011-11-14 12:24:48 +0000 (Mon, 14 Nov 2011) | 9 lines Merged revisions 1201680 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1201680 | sergeyb | 2011-11-14 12:22:27 +0000 (Mon, 14 Nov 2011) | 1 line [CXF-3900] Checking Sets when reading the beans ........ ................ Modified: cxf/branches/2.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Nov 14 12:26:58 2011 @@ -1,2 +1,2 @@ -/cxf/branches/2.4.x-fixes:1198877 -/cxf/trunk:1198875 +/cxf/branches/2.4.x-fixes:1198877,1201681 +/cxf/trunk:1198875,1201680 Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java?rev=1201682&r1=1201681&r2=1201682&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java (original) +++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java Mon Nov 14 12:26:58 2011 @@ -950,10 +950,11 @@ public final class InjectionUtils { if (isPrimitive(value.getClass())) { values.putSingle(propertyName, value); } else if (isSupportedCollectionOrArray(value.getClass())) { - // ignoring arrrays for a moment List<Object> theValues = null; if (value.getClass().isArray()) { theValues = Arrays.asList(value); + } else if (value instanceof Set) { + theValues = new ArrayList<Object>((Set<?>)value); } else { theValues = CastUtils.cast((List<?>)value); } Modified: cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java?rev=1201682&r1=1201681&r2=1201682&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java (original) +++ cxf/branches/2.3.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java Mon Nov 14 12:26:58 2011 @@ -73,10 +73,16 @@ public class InjectionUtilsTest extends values.add("lv11"); values.add("lv22"); bean2.setC(values); + Set<String> set = new HashSet<String>(); + set.add("set1"); + set.add("set2"); + bean2.setS(set); + bean1.setD(bean2); + MultivaluedMap<String, Object> map = InjectionUtils.extractValuesFromBean(bean1, ""); - assertEquals("Size is wrong", 6, map.size()); + assertEquals("Size is wrong", 7, map.size()); assertEquals(1, map.get("a").size()); assertEquals("aValue", map.getFirst("a")); assertEquals(1, map.get("b").size()); @@ -93,6 +99,10 @@ public class InjectionUtilsTest extends assertEquals("lv11", map.get("d.c").get(0)); assertEquals("lv22", map.get("d.c").get(1)); + assertEquals(2, map.get("d.s").size()); + assertEquals("set1", map.get("d.s").get(0)); + assertEquals("set2", map.get("d.s").get(1)); + } static class CustomerBean1 { @@ -140,6 +150,8 @@ public class InjectionUtilsTest extends private String a; private Long b; private List<String> c; + private Set<String> s; + public void setA(String aString) { this.a = aString; } @@ -159,7 +171,13 @@ public class InjectionUtilsTest extends return c; } + public void setS(Set<String> set) { + this.s = set; + } + public Set<String> getS() { + return this.s; + } } }
