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".

Another issue, is you are converting from a non-null String, that is
empty, then even if the class is not found, it still needs to return
null.  That makes it difficult to place this particular test after the
loadClass call.

Reply via email to