Adrian Crum wrote: > 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".
Except always testing against simpleName isn't right, as only certain classes had simpleName tests from the previous version. I see your point, however, and will fix it how you want, but only insomuch that it matches the old version.