Author: niallp Date: Thu May 24 08:38:56 2007 New Revision: 541327 URL: http://svn.apache.org/viewvc?view=rev&rev=541327 Log: BEANUTILS-88 PropertyUtilsBean.isReadable/isWriteable always returns false for mapped properties - thanks to Chuck Daniels
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java?view=diff&rev=541327&r1=541326&r2=541327 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/PropertyUtilsBean.java Thu May 24 08:38:56 2007 @@ -1328,9 +1328,12 @@ getPropertyDescriptor(bean, name); if (desc != null) { Method readMethod = desc.getReadMethod(); - if ((readMethod == null) && - (desc instanceof IndexedPropertyDescriptor)) { - readMethod = ((IndexedPropertyDescriptor) desc).getIndexedReadMethod(); + if (readMethod == null) { + if (desc instanceof IndexedPropertyDescriptor) { + readMethod = ((IndexedPropertyDescriptor) desc).getIndexedReadMethod(); + } else if (desc instanceof MappedPropertyDescriptor) { + readMethod = ((MappedPropertyDescriptor) desc).getMappedReadMethod(); + } } return (readMethod != null); } else { @@ -1384,9 +1387,12 @@ getPropertyDescriptor(bean, name); if (desc != null) { Method writeMethod = desc.getWriteMethod(); - if ((writeMethod == null) && - (desc instanceof IndexedPropertyDescriptor)) { - writeMethod = ((IndexedPropertyDescriptor) desc).getIndexedWriteMethod(); + if (writeMethod == null) { + if (desc instanceof IndexedPropertyDescriptor) { + writeMethod = ((IndexedPropertyDescriptor) desc).getIndexedWriteMethod(); + } else if (desc instanceof MappedPropertyDescriptor) { + writeMethod = ((MappedPropertyDescriptor) desc).getMappedWriteMethod(); + } } return (writeMethod != null); } else { Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java?view=diff&rev=541327&r1=541326&r2=541327 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java Thu May 24 08:38:56 2007 @@ -2076,6 +2076,60 @@ } + /** + * Test isReadable() method. + */ + public void testIsReadable() { + TestBean bean = new TestBean(); + String property = null; + try { + property = "stringProperty"; + assertTrue("Property " + property +" isReadable expeced TRUE", PropertyUtils.isReadable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isReadable Threw exception: " + t); + } + try { + property = "stringIndexed"; + assertTrue("Property " + property +" isReadable expeced TRUE", PropertyUtils.isReadable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isReadable Threw exception: " + t); + } + try { + property = "mappedProperty"; + assertTrue("Property " + property +" isReadable expeced TRUE", PropertyUtils.isReadable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isReadable Threw exception: " + t); + } + + } + + /** + * Test isReadable() method. + */ + public void testIsWriteable() { + TestBean bean = new TestBean(); + String property = null; + try { + property = "stringProperty"; + assertTrue("Property " + property +" isWriteable expeced TRUE", PropertyUtils.isWriteable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isWriteable Threw exception: " + t); + } + try { + property = "stringIndexed"; + assertTrue("Property " + property +" isWriteable expeced TRUE", PropertyUtils.isWriteable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isWriteable Threw exception: " + t); + } + try { + property = "mappedProperty"; + assertTrue("Property " + property +" isWriteable expeced TRUE", PropertyUtils.isWriteable(bean, property)); + } catch (Throwable t) { + fail("Property " + property +" isWriteable Threw exception: " + t); + } + + } + /** * Test the mappedPropertyType of MappedPropertyDescriptor. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]