[
https://issues.apache.org/jira/browse/BEANUTILS-332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Niall Pemberton updated BEANUTILS-332:
--------------------------------------
Fix Version/s: (was: 1.8.0)
LATER THAN 1.8.0
> Getter-/Setter-Detection does not work on inner default visible level classes
> -----------------------------------------------------------------------------
>
> Key: BEANUTILS-332
> URL: https://issues.apache.org/jira/browse/BEANUTILS-332
> Project: Commons BeanUtils
> Issue Type: Bug
> Components: Bean / Property Utils
> Affects Versions: 1.8.0
> Environment: Linux, Java 1.5
> Reporter: Cristian Kalkhoff
> Fix For: LATER THAN 1.8.1
>
>
> There seem to be a problem for the BeanUtils copyProperties method, if origin
> oder destination“s class is only default visible.
> I stepped over that when I wrote a unit test, that includes two bean classes
> with equal properties. I declared them static but not public by accident and
> wondered why it didn“t worked. After some debugging I found it to fail while
> checking for readable source and writeable target properties.
> See this code sample - Putting public in front of the inner classes static
> class let it work again:
> import junit.framework.TestCase;
> public class BeanUtilsTest extends TestCase {
> public void testCopyPropertiesObjectObject() {
> SourceBean source = new SourceBean();
> FullTargetBean fullTarget = new FullTargetBean();
> BeanUtils.copyProperties(fullTarget, source);
> assertEquals("My World!", fullTarget.getName()); // Fails since it is
> still "Hello World!"
> }
> static class SourceBean {
> private long id = 10L;
> private String name = "My World!";
> private Boolean fullMoon = true;
> public long getId() {
> return id;
> }
> public void setId(long id) {
> this.id = id;
> }
> public String getName() {
> return name;
> }
> public void setName(String name) {
> this.name = name;
> }
> public Boolean getFullMoon() {
> return fullMoon;
> }
> public void setFullMoon(Boolean fullMoon) {
> this.fullMoon = fullMoon;
> }
> }
> static class FullTargetBean {
> private long id = 16L;
> private String name = "Hello World!";
> private Boolean fullMoon = false;
> public long getId() {
> return id;
> }
> public void setId(long id) {
> this.id = id;
> }
> public String getName() {
> return name;
> }
> public void setName(String name) {
> this.name = name;
> }
> public Boolean isFullMoon() {
> return fullMoon;
> }
> public void setFullMoon(Boolean fullMoon) {
> this.fullMoon = fullMoon;
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.