You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/04/10 21:29:03 UTC
svn commit: r527260 -
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java
Author: dain
Date: Tue Apr 10 12:29:03 2007
New Revision: 527260
URL: http://svn.apache.org/viewvc?view=rev&rev=527260
Log:
ejbSelect queries can return a primitive type that requires an explicit down cast
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java?view=diff&rev=527260&r1=527259&r2=527260
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/cmp2/EjbSelect.java Tue Apr 10 12:29:03 2007
@@ -35,7 +35,25 @@
}
CmpContainer cmpContainer = (CmpContainer) container;
Object result = cmpContainer.select(deploymentInfo, methodSignature, returnType, args);
- return result;
+ if (result instanceof Number) {
+ Number number = (Number) result;
+ if ("char".equals(returnType) || Character.class.getName().equals(returnType)) {
+ result = new Character((char) number.intValue());
+ } else if ("byte".equals(returnType) || Byte.class.getName().equals(returnType)) {
+ result = number.byteValue();
+ } else if ("short".equals(returnType) || Short.class.getName().equals(returnType)) {
+ result = number.shortValue();
+ } else if ("int".equals(returnType) || Integer.class.getName().equals(returnType)) {
+ result = number.intValue();
+ } else if ("long".equals(returnType) || Long.class.getName().equals(returnType)) {
+ result = number.longValue();
+ } else if ("float".equals(returnType) || Float.class.getName().equals(returnType)) {
+ result = number.floatValue();
+ } else if ("double".equals(returnType) || Double.class.getName().equals(returnType)) {
+ result = number.doubleValue();
+ }
+ }
+ return result;
}
}