Hi Scott,

I agree with you but when I did it (probably one year ago) I see that if I use 
the method simpleTypeConvert the exception is not recognized by 
call-class-method and then the exception is shown to the final user, something 
similar to:

ERROR: Could not complete the Open Terminal 
[file:/ofbiz_webpos2/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml#openTerminal]
 process [Method to execute named simpleTypeConvert threw an exception: 
org.ofbiz.base.util.GeneralException: java.text.ParseException: Unparseable 
number: "a33ee" (java.text.ParseException: Unparseable number: "a33ee")]

instead using my method the user see this error:

Insert a valid starting drawer amount

I agree to use only one method for conversion (so the standard one 
simpleTypeConvert) but in this case I need to trap the exception in the simple 
method.

Any hint to solve this problem and then remove the method 
UtilNumber.stringToBigDecimal.

On markmail I found this old thread:

http://ofbiz.markmail.org/search/?q=exception%20in%20call-class-method#query:exception%20in%20call-class-method+page:1+mid:orxqauretvhwuznf+state:results

Thanks
Marco


> Hi Marco,
> 
> We have the conversion framework for converting Strings to BigDecimals so 
> there is no need to implement a new method for it:
> BigDecimal bigDecimal = (BigDecimal) ObjectType.simpleTypeConvert(object, 
> "BigDecimal", null, locale);
> 
> Regards
> Scott
> 
> On 23/05/2011, at 1:11 AM, mrisal...@apache.org wrote:
> 
>> Author: mrisaliti
>> Date: Sun May 22 13:11:17 2011
>> New Revision: 1125951
>> 
>> URL: http://svn.apache.org/viewvc?rev=1125951&view=rev
>> Log:
>> Webpos2 improved version (OFBIZ-4287)
>> 
> [snip]
>> 
>> 
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java?rev=1125951&r1=1125950&r2=1125951&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java 
>> (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilNumber.java Sun 
>> May 22 13:11:17 2011
>> @@ -20,6 +20,8 @@
>> package org.ofbiz.base.util;
>> 
>> import java.math.BigDecimal;
>> +import java.text.NumberFormat;
>> +import java.text.ParseException;
>> import java.util.HashMap;
>> import java.util.Locale;
>> 
>> @@ -250,4 +252,27 @@ public class UtilNumber {
>> 
>>        return (bd.toString() + "%");
>>    }
>> +    
>> +    /**
>> +      * Method to convert a string into BigDecimal.
>> +      *
>> +      * @param stringToConvert String to convert to BigDecimal
>> +      * @return                The string converted to BigDecimal
>> +      */
>> +    public static BigDecimal stringToBigDecimal(String stringToConvert, 
>> Locale locale) {
>> +        if (stringToConvert != null && stringToConvert != "") {
>> +            Number numb = null;
>> +            NumberFormat nf = NumberFormat.getInstance(locale);
>> +            nf.setMaximumFractionDigits(10);
>> +            try {
>> +                numb = nf.parse(stringToConvert);
>> +                return (new BigDecimal(numb.toString()));
>> +            } catch (ParseException e) {
>> +                return null;
>> +            }
>> +        }
>> +        else {
>> +            return null;
>> +        }
>> +    }
>> }
>> 
> 

Reply via email to