commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgra...@apache.org
Subject cvs commit: jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils BasicResultSetConverter.java
Date Fri, 17 Oct 2003 23:37:57 GMT
dgraham     2003/10/17 16:37:57

  Modified:    dbutils/src/java/org/apache/commons/dbutils
                        BasicResultSetConverter.java
  Log:
  Don't call a bean property's setter method if the type of object returned 
  from the database doesn't match the setter method signature.  This
  allows clients to use toBean() to populate most properties and then
  fill in the rest with custom code without having to catch an exception
  from toBean().
  
  Revision  Changes    Path
  1.5       +12 -6     jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/BasicResultSetConverter.java
  
  Index: BasicResultSetConverter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/BasicResultSetConverter.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BasicResultSetConverter.java	17 Oct 2003 23:22:44 -0000	1.4
  +++ BasicResultSetConverter.java	17 Oct 2003 23:37:57 -0000	1.5
  @@ -253,11 +253,17 @@
        * @throws DbException if an error occurs setting the property.
        */
       private void callSetter(PropertyDescriptor pd, Object target, Object value) {
  +        Method setter = pd.getWriteMethod();
   
  -        try {
  -            Method setter = pd.getWriteMethod();
  +        if (setter == null) {
  +            return;
  +        }
  +        
  +        Class[] params = setter.getParameterTypes();
   
  -            if (setter != null) {
  +        try {
  +            // Don't call setter if the value object isn't the right type 
  +            if (value == null || params[0].isInstance(value)) {
                   setter.invoke(target, new Object[] { value });
               }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message