You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jy...@apache.org on 2005/02/04 19:08:57 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/templates ElemNumber.java

jycli       2005/02/04 10:08:57

  Modified:    java/src/org/apache/xalan/templates ElemNumber.java
  Log:
  Implement Errata E24, when the value attribute of xsl:number is NaN, infinite or less than 0.5. More details please refer to bug report XALANJ-1979.
  Patch is reviewed by Morris Kwan (mkwan@ca.ibm.com)
  
  Revision  Changes    Path
  1.36      +12 -5     xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java
  
  Index: ElemNumber.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemNumber.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- ElemNumber.java	23 Jan 2005 00:27:29 -0000	1.35
  +++ ElemNumber.java	4 Feb 2005 18:08:57 -0000	1.36
  @@ -795,10 +795,17 @@
       if (null != m_valueExpr)
       {
         XObject countObj = m_valueExpr.execute(xctxt, sourceNode, this);
  -      long count = (long)java.lang.Math.floor(countObj.num()+ 0.5);
  -
  -      list = new long[1];
  -      list[0] = count;
  +      //According to Errata E24
  +      double d_count = java.lang.Math.floor(countObj.num()+ 0.5);
  +      if (Double.isNaN(d_count)) return "NaN";
  +      else if (d_count < 0 && Double.isInfinite(d_count)) return "-Infinity";
  +      else if (Double.isInfinite(d_count)) return "Infinity";
  +      else if (d_count == 0) return "0";
  +      else{
  +              long count = (long)d_count;
  +              list = new long[1];
  +              list[0] = count;              
  +      }
       }
       else
       {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org