You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by be...@apache.org on 2006/03/23 13:51:47 UTC

svn commit: r388161 - in /db/derby/code/trunk/java: client/org/apache/derby/client/am/CrossConverters.java engine/org/apache/derby/iapi/types/SQLDouble.java

Author: bernt
Date: Thu Mar 23 04:51:45 2006
New Revision: 388161

URL: http://svn.apache.org/viewcvs?rev=388161&view=rev
Log:
DERBY-1136 JDBC driver on rs.getFloat() gives LossOfPrecisionConversionException for float fields containing Float.MAX_VALUE

Submitted by HÃ¥vard Mork


Modified:
    db/derby/code/trunk/java/client/org/apache/derby/client/am/CrossConverters.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLDouble.java

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/am/CrossConverters.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/client/org/apache/derby/client/am/CrossConverters.java?rev=388161&r1=388160&r2=388161&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/am/CrossConverters.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/am/CrossConverters.java Thu Mar 23 04:51:45 2006
@@ -1074,7 +1074,7 @@
 
     final float getFloatFromDouble(double source) throws SqlException {
         if (Configuration.rangeCheckCrossConverters &&
-                (source > Float.MAX_VALUE || source < -Float.MAX_VALUE)) {
+                Float.isInfinite((float)source)) {
             throw new LossOfPrecisionConversionException(agent_.logWriter_, String.valueOf(source));
         }
 

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLDouble.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLDouble.java?rev=388161&r1=388160&r2=388161&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLDouble.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLDouble.java Thu Mar 23 04:51:45 2006
@@ -134,7 +134,7 @@
 	 */
 	public float	getFloat() throws StandardException
 	{
-		if (Math.abs(value) > Float.MAX_VALUE)
+		if (Float.isInfinite((float)value))
 			throw StandardException.newException(SQLState.LANG_OUTSIDE_RANGE_FOR_DATATYPE, TypeId.REAL_NAME);
 		return (float) value;
 	}