Exception when using LOCALIZEDDISPLAY with JSR169
-------------------------------------------------

         Key: DERBY-470
         URL: http://issues.apache.org/jira/browse/DERBY-470
     Project: Derby
        Type: Bug
  Components: Localization  
 Environment: IBM's J2ME/CDC/Foundation Profile and JSR169
    Reporter: Deepa Remesh
 Assigned to: Deepa Remesh 


As I did not get any response to my mail, I am opening a JIRA issue for this.

When I run the test i18n/I18NImportExport.java with JSR169 using IBM's 
J2ME/CDC/Foundation Profile, I get the following exception:
"JAVA ERROR: java.lang.NoSuchMethodError: 
java/sql/ResultSet.getBigDecimal(II)Ljava/math/BigDecimal;"

In the test, LOCALIZEDDISPLAY is on and the table has a DECIMAL column. This 
causes the exception. On looking at the code, following is done to format 
DECIMAL types in LocalizedResource:

if (type == Types.NUMERIC || type == Types.DECIMAL) { 
      return  getNumberAsString(rs.getBigDecimal(columnNumber, 
rsm.getScale(columnNumber)));
}

where getNumberAsString method does the following:

public String getNumberAsString(Object o){
      if (enableLocalized){
            return formatNumber.format(o, new StringBuffer(), new 
FieldPosition(0)).toString();
      }
      else {
            return o.toString();
      }
 }

As a solution, I am planning to do the following:
1. Check for BigDecimal class in the JVM by doing a Class.forName
2. Call getNumberAsString for NUMERIC and DECIMAL types only if BigDecimal 
class is available. Otherwise, return rs.getString.

This solution would mean that NUMERIC and DECIMAL types will not  be localized 
in these JVM environments. Please let me know if any comments on this.

Thanks,
Deepa



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to