DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26918>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26918 Cannot populate Stirng[][] properties with beanutils Summary: Cannot populate Stirng[][] properties with beanutils Product: Commons Version: 1.6 Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Bean Utilities AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Hello, It seems that BeanUtils.populate(bean,map) cannot populate properties whose type is "double" (or triple, or quadruple...) arrays. The following testCase seems to prove this : ///////////////////////////////////////////////// package fr.factory.test.commons; import java.util.HashMap; import junit.framework.TestCase; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * Class TestBeanUtils * @author lmaitre */ public class TestBeanUtils extends TestCase { private Log log = LogFactory.getLog(TestBeanUtils.class); /** * Constructor for TestBeanUtils. * @param name */ public TestBeanUtils(String name) { super(name); } public static void main(String[] args) { junit.textui.TestRunner.run(TestBeanUtils.class); } final public void testPopulate() { SampleBean bean = new SampleBean(); String[][] sampleValue = { { "toto","titi" }, { "tata","tutu" } }; HashMap properties = new HashMap(); properties.put("doubleArrayProperty",sampleValue); try { BeanUtils.populate(bean,properties); assertTrue(bean.getDoubleArrayProperty()==sampleValue); } catch (Exception e) { log.debug("Exception :" + e.getMessage()); e.printStackTrace(); } } private class SampleBean { private String[][] doubleArrayProperty; /** * Method getDoubleArrayProperty * @return String[][] */ public String[][] getDoubleArrayProperty() { return doubleArrayProperty; } /** * Method setDoubleArrayProperty * @return void */ public void setDoubleArrayProperty(String[][] strings) { doubleArrayProperty= strings; } } } ////////////////////////////////////////////////////////////// this give the following stack trace : java.lang.reflect.InvocationTargetException: Cannot set doubleArrayProperty at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1022) at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808) at fr.factory.test.commons.TestBeanUtils.testPopulate(TestBeanUtils.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:392) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:276)17:40:16 TestBeanUtils: Exception :Cannot set doubleArrayProperty at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:167) Caused by: java.lang.NoSuchMethodException: Property 'doubleArrayProperty' has no setter method at org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1782) at org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684) at org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713) at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019) ... 17 more So, i have tested this with BeanUtils 1.6.1 (but perhaps i have forgotten an obvious thing ?). I precise that i must absolutely use this type of functionnality (in struts) so... i will pass my week end to patch this. I hope that i will give a patch monday. If somebody find a workaround before monday i really appreciate if he can cc me the solution to my personal mailbox at [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
