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

git-svn-id: https://svn.apache.org/repos/asf/tuscany/das-java/trunk@1084571 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java b/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
index 0e5fc48..6e02b3d 100644
--- a/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
+++ b/rdb/src/main/java/org/apache/tuscany/das/rdb/graphbuilder/impl/DataObjectMaker.java
@@ -23,6 +23,7 @@
 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 @@
             }
 
             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;