db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Deepa Remesh <drem...@gmail.com>
Subject Exception when using LOCALIZEDDISPLAY with JSR169
Date Thu, 21 Jul 2005 01:53:57 GMT
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();
		}
	}


I have couple of questions on this:

1. Currently for NUMERIC/DECIMAL types, a BigDecimal object is passed
to "getNumberAsString". Since BigDecimal is not in J2ME/FP, can any
other object type be used to get an equivalent localized string?

2. Another solution to the problem is to format NUMERIC/DECIMAL types
only if BigDecimal class is available in the JVM. Otherwise, use
ResultSet getString method. But this would mean that these types will
not be localized in J2ME/FP. Is this acceptable?

Thanks,
Deepa

Mime
View raw message