Hi folks,
I'm trying the migration to 1.0.12 to avoid issues with Firefox 3.6. Some of
my subforms stopped working and I took a look at the javascript.
I realized the problem was in the validation of a long field, the method *
decimalParse* calls *getGroupingSeparator*...

...
function _getGroupingSeparator()
{
  if (_groupingSep != null)
    return _groupingSep;

  return this.*getLocaleElements*()["NumberElements"][1];
}
...

and *this.getLocaleElements* returns '*undefined*', crashing the conversion.

Actually the first thing that looked strange to me, was *
TrLongConverter.prototype.getAsObject* calling *_decimalParse* without the
last parameter, *ignoreLocaleSymbols*, as follows:

TrLongConverter.prototype.getAsObject = function(
  numberString,
  label
  )
{
  return _decimalParse(numberString,
                       this._message,
                       "org.apache.myfaces.trinidad.convert.LongConverter",
                       this._maxPrecision,
                       this._maxScale,
                       this._maxValue,
                       this._minValue,
                       label,
                       null);
}
...
function _decimalParse(
  numberString,
  message,
  standardKey,
  maxPrecision,
  maxScale,
  maxValue,
  minValue,
  label,
  parsefloat,
  *ignoreLocaleSymbols*
  )
{
  // The following are from the javadoc for TrNumberConverter
  // If the specified String is null, return a null. Otherwise, trim leading
and trailing whitespace before proceeding.
  // If the specified String - after trimming - has a zero length, return
null.
  if (numberString == null)
    return null;

  numberString = TrUIUtils.trim(numberString);
  if (numberString.length == 0)
    return null

  var facesMessage = null;

  // Get LocaleSymbols (from Locale.js)
  var symbols = getLocaleSymbols();
  if (symbols && (*ignoreLocaleSymbols* != true))
  {
    // We don't want leading or trailing grouping separators
    var grouping = symbols.*getGroupingSeparator*();
    if ((numberString.indexOf(grouping) == 0) ||
        (numberString.lastIndexOf(grouping) ==  (numberString.length - 1)))
    {
      facesMessage =  _createFacesMessage( standardKey+".CONVERT",
                                        label,
...

Should I file an issue ? Is there an workaround ?

Thanks in advance,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br

Reply via email to