Author: bolbic
Date: Wed Mar 23 13:11:07 2011
New Revision: 1084571

URL: http://svn.apache.org/viewvc?rev=1084571&view=rev
Log:
when mapping a result set to a data object, a mismatch between the value and 
property types may happen in some cases (e.g. booleans) and needs to be handled

Modified:
    
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java

Modified: 
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
URL: 
http://svn.apache.org/viewvc/tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java?rev=1084571&r1=1084570&r2=1084571&view=diff
==============================================================================
--- 
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
 (original)
+++ 
tuscany/das-java/trunk/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
 Wed Mar 23 13:11:07 2011
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
 
 import commonj.sdo.DataObject;
 import commonj.sdo.Property;
@@ -101,8 +102,16 @@ public final class DataObjectMaker {
             }
 
             Object value = tableData.getColumnData(propertyName);
-
-            obj.set(p, value);
+            try {
+                obj.set(p, value);
+            } catch (ClassCastException e) {
+               // a mismatch between the value and property types may happen 
in some cases
+               // e.g. when the property is a boolean but the database doesn't 
have a boolean data type
+               if (value != null) {
+                       Object convertedValue = DataObjectUtil.getSetValue(p, 
value.toString());
+                       obj.set(p, convertedValue);
+               }
+            }
         }
 
         return obj;


Reply via email to