Author: davidb Date: Fri Sep 16 07:47:09 2016 New Revision: 1761008 URL: http://svn.apache.org/viewvc?rev=1761008&view=rev Log: FELIX-5341 Exception thrown when field in Map missing from DTO
Includes a test case. Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java?rev=1761008&r1=1761007&r2=1761008&view=diff ============================================================================== --- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java (original) +++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java Fri Sep 16 07:47:09 2016 @@ -228,7 +228,11 @@ public class ConvertingImpl implements C try { f = targetCls.getDeclaredField(entry.getKey().toString()); } catch (NoSuchFieldException e) { - f = targetCls.getField(entry.getKey().toString()); + try { + f = targetCls.getField(entry.getKey().toString()); + } catch (NoSuchFieldException e1) { + // There is not field with this name + } } if (f != null) { @@ -546,6 +550,7 @@ public class ConvertingImpl implements C cls.getConstructor(); return cls; // If no exception the constructor is there } catch (NoSuchMethodException e1) { + // There is no constructor with this name } } for (Class<?> intf : cls.getInterfaces()) { Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java?rev=1761008&r1=1761007&r2=1761008&view=diff ============================================================================== --- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java (original) +++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java Fri Sep 16 07:47:09 2016 @@ -508,6 +508,14 @@ public class ConverterServiceTest { // TODO convert back } + @Test + public void testMapToDTOWithSurplusMapFiels() { + Map<String, String> m = new HashMap<>(); + m.put("foo", "bar"); + MyDTO3 dtoDoesNotMap = converter.convert(m).to(MyDTO3.class); + assertNull(dtoDoesNotMap.charSet); + } + @Test @SuppressWarnings("rawtypes") public void testCopyMap() { Map m = new HashMap();