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]

Reply via email to