You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2010/01/29 19:52:46 UTC
svn commit: r904587 -
/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
Author: simoneg
Date: Fri Jan 29 18:52:46 2010
New Revision: 904587
URL: http://svn.apache.org/viewvc?rev=904587&view=rev
Log:
Try native counterparts when searching for setter method for primary keys
Modified:
labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
Modified: labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java?rev=904587&r1=904586&r2=904587&view=diff
==============================================================================
--- labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java (original)
+++ labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/DatabaseIdentity.java Fri Jan 29 18:52:46 2010
@@ -21,10 +21,14 @@
import javax.persistence.Id;
+import org.apache.commons.beanutils.MethodUtils;
+import org.apache.magma.basics.LocalizableString;
import org.apache.magma.basics.MagmaException;
import org.apache.magma.conversion.Converter;
import org.apache.magma.conversion.Converters;
+import sun.reflect.misc.MethodUtil;
+
public class DatabaseIdentity {
Class<? extends DatabasePersisted> myclass = null;
@@ -120,7 +124,21 @@
method.invoke(bean, value);
return;
} catch (Exception e) {
- throw new MagmaException(e, "Error callong method {0}.{1}, which is key setter for the class {2}", idgetter.getDeclaringClass(), name, myclass.getName());
+ Class<? extends Object> clz = value.getClass();
+ clz = MethodUtils.getPrimitiveType(clz);
+ MagmaException me = new MagmaException(e, "Error callong method {0}.{1}, which is key setter for the class {2}", idgetter.getDeclaringClass(), name, myclass.getName());
+ if (clz != null) {
+ try {
+ Method method = this.myclass.getMethod(name, clz);
+ method.invoke(bean, value);
+ return;
+ } catch (NoSuchMethodException e2) {
+ me.addMessage(new LocalizableString("Additionally an error occurred searching for primitive type {0}", clz));
+ } catch (Exception e2) {
+ throw new MagmaException(e, "Error callong method {0}.{1}, which is key setter for the class {2}", idgetter.getDeclaringClass(), name, myclass.getName());
+ }
+ }
+ throw me;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org