Skip to content

Commit 26d5c30

Browse files
committed
Ignore missing properties when coercing to bean types.
1 parent 3f65602 commit 26d5c30

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
subprojects {
1616
group = 'org.httprpc'
17-
version = '8.2.2'
17+
version = '8.2.3'
1818

1919
apply plugin: 'java-library'
2020
apply plugin: 'maven-publish'

httprpc-client/src/main/java/org/httprpc/beans/BeanAdapter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,11 @@ private static Object adaptValue(Object value, Class<?> type) {
652652
BeanAdapter beanAdapter = new BeanAdapter(bean);
653653

654654
for (Map.Entry<?, ?> entry : map.entrySet()) {
655-
beanAdapter.put(entry.getKey().toString(), entry.getValue());
655+
try {
656+
beanAdapter.put(entry.getKey().toString(), entry.getValue());
657+
} catch (UnsupportedOperationException exception) {
658+
// No-op
659+
}
656660
}
657661

658662
return bean;

httprpc-client/src/test/java/org/httprpc/beans/BeanAdapterTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,13 @@ public void testReifiedMap() {
232232
assertThrows(IllegalArgumentException.class, () -> BeanAdapter.adapt(emptyMap(), TestMap.class));
233233
}
234234

235+
@Test
236+
public void testMissingProperty() {
237+
BeanAdapter.adapt(mapOf(
238+
entry("foo", "bar")
239+
), TestBean.class);
240+
}
241+
235242
@Test
236243
public void testGetProperties() {
237244
Map<String, Type> properties = BeanAdapter.getProperties(TestBean.class).entrySet().stream()

0 commit comments

Comments
 (0)