[
https://issues.apache.org/jira/browse/BEANUTILS-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13835777#comment-13835777
]
Oliver Heger commented on BEANUTILS-443:
----------------------------------------
If I understand this report and the provided code examples correctly, the
involved classes violate the Java Beans specification which is pretty strict
regarding the conventions for get and set methods for valid bean properties.
However, you may have a look at BEANUTILS-425 and BEANUTILS-428 which add a
mechanism to extend the introspection mechanism used by BeanUtils. By
customizing this mechanism you should be able to correctly handle your entity
classes.
> PropertyUtils.setProperty(...) cannot find the Setter method if returnValue
> doesn't exact match the interface return value.
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: BEANUTILS-443
> URL: https://issues.apache.org/jira/browse/BEANUTILS-443
> Project: Commons BeanUtils
> Issue Type: Bug
> Components: Bean / Property Utils
> Affects Versions: 1.8.3
> Environment: at least Java 1.6.0_33 on ubuntu
> Reporter: Harald Brabenetz
> Priority: Critical
>
> Here is My testClass:
> {code:title=PropertyUtilsSetValueUTest.java|borderStyle=solid}
> import org.apache.commons.beanutils.PropertyUtils;
> import org.junit.Test;
> public class PropertyUtilsSetValueUTest {
> @Test
> public void testSetProperty() throws Exception {
> final MyEntity entity = new MyEntity();
> // fist set value manual
> final OtherEntity otherEntity = new OtherEntity();
> entity.setOtherEntity(otherEntity);
> // second set value with PropertyUtils
> PropertyUtils.setProperty(entity, "otherEntity", otherEntity);
> // => java.lang.NoSuchMethodException: Property 'otherEntity' has no
> setter method in class '... MyEntity'
> }
> public static class MyEntity implements MyEntityInterface {
> private OtherEntity otherEntity;
> @Override
> public OtherEntity getOtherEntity() {
> return this.otherEntity;
> }
> public void setOtherEntity(final OtherEntity otherEntity) {
> this.otherEntity = otherEntity;
> }
> }
> public static class OtherEntity implements OtherEntityInterface {
> }
> public static interface MyEntityInterface {
> OtherEntityInterface getOtherEntity();
> }
> public static interface OtherEntityInterface {
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)