Adam Heath wrote:
Adrian Crum wrote:
doo...@apache.org wrote:
Author: doogie
Date: Mon Mar  1 05:06:16 2010
New Revision: 917376

URL: http://svn.apache.org/viewvc?rev=917376&view=rev
Log:
BUG FIX: Move the check that tests whether we are converting to the
passed object to before the loadClass call.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ObjectType.java

Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ObjectType.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ObjectType.java?rev=917376&r1=917375&r2=917376&view=diff

==============================================================================

--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ObjectType.java
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/ObjectType.java
Mon Mar  1 05:06:16 2010
@@ -484,6 +484,9 @@
             return obj.toString();
         }
         Class<?> sourceClass = obj.getClass();
+        if (sourceClass.getName().equals(type)) {
+            return obj;
+        }
         if ("Object".equals(type) || "java.lang.Object".equals(type)) {
             return obj;
         }
Are you sure this will work? Take a look at the following if statement.

Yes, due a combination of things.

If the object was null, return null.

If converting to the same exact class as the incoming obj, return with
no change.

If the incoming object is a string, and it is empty, return null.

The above 3 constraints were pulled from the old version of
simpleTypeConvert.

Without all three, if you tried to convert an empty String to a
String, you'd get null.

I think you missed my point. Shouldn't the test be something like:

if (sourceClass.getName().equals(type) || sourceClass.getSimpleName().equals(type)) {
    return obj;
}

?

In other words, you can't count on type being "java.util.Date" - it might be simply "Date".

Reply via email to