You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2012/08/24 00:14:12 UTC

svn commit: r1376734 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java

Author: prestonc
Date: Thu Aug 23 22:14:12 2012
New Revision: 1376734

URL: http://svn.apache.org/viewvc?rev=1376734&view=rev
Log:
Added a condition to check for values that could cause issues with printing doubles.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java?rev=1376734&r1=1376733&r2=1376734&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/cast/CastToStringOperation.java Thu Aug 23 22:14:12 2012
@@ -164,7 +164,7 @@ public class CastToStringOperation exten
         } else if (value == 0) {
             long bits = Double.doubleToLongBits(value);
             boolean negative = ((bits >> 63) == 0) ? false : true;
-            
+
             if (negative) {
                 writeChar('-', dOutInner);
             }
@@ -244,7 +244,7 @@ public class CastToStringOperation exten
 
                 double d;
                 while (!Double.isInfinite(mPlus) && !Double.isNaN(mPlus) && !Double.isInfinite(mMinus)
-                        && !Double.isNaN(mMinus)) {
+                        && !Double.isNaN(mMinus) && !Double.isInfinite(r) && !Double.isNaN(r)) {
                     if (s == r) {
                         // Special case where the value is off by a factor of ten.
                         d = 1;